在 Linux 中,除“test”目录外的目录中查找所有“.c”和“.h”文件

在 Linux 中,除“test”目录外的目录中查找所有“.c”和“.h”文件

我想找到我的目录中的所有.c 和 .h 文件,但不包括“测试”文件夹中的文件(有多个)。

我正在搜索的目录有测试目录,例如:

myDirectory/abc/def/test
myDirectory/abc/def/ghi/test

ETC。

到目前为止,我已经尝试过:

find /myDirectory/* -type d -name test -prune -o -name '*.c' -print

这似乎对.c 文件有效,但是当我运行时:

find /myDirectory/* -type d -name test -prune -o -name '*.c' -o -name '*.h' -print

什么也没有返回。

如何包含多种文件类型?

答案1

您必须将这两个-name谓词分组:

find /myDirectory/* -type d -name test -prune -o \( -name '*.c' -o -name '*.h' \) -print

需要反斜杠来转义括号。

相关内容