如何解决Linux shell 选择目录和子目录中的文件
vim *.PHP
解决方法
使用 bash 中的 shell 选项 `globstar`,您可以使用
vim **/*.php
要启用外壳选项,请使用例如
shopt -s globstar
,
您可以将 find
与 xargs
结合使用:
find . -type f -name '*.php' -print0 | xargs -0 vi
find
将定位当前目录中和当前目录下与 *.php
匹配的所有常规文件,并将流中的所有名称发送到以 xargs
字符分隔的 NUL
.
xargs
程序(-0
与 -print0
匹配)然后将它们分成单独的文件名,并将尽可能多的文件名传递给单个 vi
调用。如果它不能在一次调用中满足所有这些要求(不太可能,除非文件数量确实很大),它将根据需要进行多次调用。
您可以使用 brace expansions:
vim {,*/}*.php
它是如何工作的
-
{,*/}
扩展为<empty> dir1/ dir2/ ...
- 最后的命令行是:
ls *.php dir1/*.php dir2/*.php ...
这仅匹配直接子目录,因此不会包含子目录的子目录。正如其他答案中提到的,find
或 globstar
更适合这种情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。