【发布时间】:2021-07-30 08:51:02
【问题描述】:
为了选择文件夹中的所有 php 文件,我们使用:
vim *.php
如何使用该命令选择该目录及其子目录下的*.php文件?
【问题讨论】:
为了选择文件夹中的所有 php 文件,我们使用:
vim *.php
如何使用该命令选择该目录及其子目录下的*.php文件?
【问题讨论】:
在 bash 中使用 shell 选项 `globstar` 可以使用
vim **/*.php
要启用 shell 选项,请使用例如
shopt -s globstar
【讨论】:
您可以将find 与xargs 结合使用:
find . -type f -name '*.php' -print0 | xargs -0 vi
find 将在当前目录中和当前目录下查找与*.php 匹配的所有常规文件,并将流中的所有名称发送到xargs,以NUL 字符分隔。
xargs 程序(带有与-print0 匹配的-0)然后会将它们分成单独的文件名,并尽可能多地传递给单个vi 调用。如果一次调用不能满足所有要求(不太可能,除非文件数量确实很大),它会根据需要进行多次调用。
【讨论】:
你可以使用brace expansions:
vim {,*/}*.php
{,*/} 扩展为 <empty> dir1/ dir2/ ...
ls *.php dir1/*.php dir2/*.php ...
这仅匹配直接子目录,因此不会包含子目录的子目录。正如其他答案中提到的,find 或 globstar 更适合。
【讨论】: