通过终端中的掩码获取所有文件的列表

Loo*_*oom 7 bash terminal find file-search

我想在具有定义掩码的文件夹中找到所有*.h,*.cpp文件,例如*/trunk/src*. 所以,我可以单独找到*.h*.cpp文件:

find . -path "*/trunk/src/*.h"
find . -path "*/trunk/src/*.cpp" 
Run Code Online (Sandbox Code Playgroud)

获取两种类型(*.h*.cpp)的文件列表的最佳方法是什么?

PS 我想将列表通过管道传输到grep.

cho*_*oba 12

您可以使用-o“或”:

find . -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp'
Run Code Online (Sandbox Code Playgroud)

这与

find . -path '*/trunk/src/*' \( -name '*.h' -o -name '*.cpp' \)
Run Code Online (Sandbox Code Playgroud)

如果要对这些文件运行 grep:

find . \( -path '*/trunk/src/*.h' -o -path '*/trunk/src/*.cpp' \) -exec grep PATTERN {} +
Run Code Online (Sandbox Code Playgroud)

或者

find . -path '*/trunk/src/*' \( -name '*.h' -o -name '*.cpp' \) -exec grep PATTERN {} +
Run Code Online (Sandbox Code Playgroud)