我正在尝试使用 find 命令生成一个目录中的源文件列表,并且只生成它的一些子目录。例子:
/Source_Files
/dontexclude
dontexclude.h
dontexclude.c
/exclude
exclude.c
exclude.h
main.c
test.c
test.h
Run Code Online (Sandbox Code Playgroud)
我想要一个以“.c”和“.h”结尾的文件列表,我想排除 /exclude 子目录的内容。
find -name '*.c' -o -name '*.h' -o -path '*/exclude' -prune
产生这个输出:
./test.h
./exclude
./test.c
./main.c
./dontexclude/dontexclude.c
./dontexclude/dontexclude.h
Run Code Online (Sandbox Code Playgroud)
如何find
在没有“./exclude”的情况下生成上述列表?
find . -name excludeme -prune -o \
\( -name '*.c' -o -name '*.h' \) -print
Run Code Online (Sandbox Code Playgroud)
请记住,AND(隐式)优先于OR ( -o
)。(另见-name '*.[ch]'
)
归档时间: |
|
查看次数: |
157 次 |
最近记录: |