在 Linux 中尋找目錄中除“test”目錄之外的所有“.c”和“.h”文件

在 Linux 中尋找目錄中除“test”目錄之外的所有“.c”和“.h”文件

我想找到目錄中的所有 .c 和 .h 文件,不包括“test”資料夾中的文件(有多個)。

我正在搜尋的目錄有測試目錄,例如:

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

需要反斜線來轉義括號。

相關內容