Linux の 'test' ディレクトリを除くディレクトリ内のすべての '.c' および '.h' ファイルを検索します

Linux の 'test' ディレクトリを除くディレクトリ内のすべての '.c' および '.h' ファイルを検索します

ディレクトリ内のすべての .c ファイルと .h ファイルを検索します。ただし、「test」フォルダー内のファイルは除きます (複数あります)。

検索しているディレクトリには、次のようなテスト ディレクトリがあります。

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

これまで試したこと:

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

2 つの述語をグループ化する必要があります-name

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

括弧をエスケープするにはバックスラッシュが必要です。

関連情報