私はfindコマンドを使用して、ディレクトリといくつかのサブディレクトリにあるソースファイルのリストを生成しようとしています。例:
/Source_Files
/dontexclude
dontexclude.h
dontexclude.c
/exclude
exclude.c
exclude.h
main.c
test.c
test.h
「.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
find
"./exclude"なしで上記のリストをどのように生成できますか?
ベストアンサー1
find . -name excludeme -prune -o \
\( -name '*.c' -o -name '*.h' \) -print
覚えてくださいそして(暗黙的に)優先順位があります。または(-o
)。 (あなたも確認できます-name '*.[ch]'
)