find . -name "foo" -prune -o -print 同僚から、あるディレクトリ配下で特定ディレクトリ配下を排除したファイルリストが欲しい、何か方法はない? と訊かれた。find の !使えば良いじゃんと思ったが、前提として環境はAIX*1だ。-pathオプションがない。-pathオプションがあったとしても、find . ! -path "*/foo*"では排除したくないfoobarディレクトリも排除してしまう。 悩みつつはじき出したのがこれ。 まぁ悩んだと言っても実はManpage of FINDの-pathの項に書いてあったのを使っただけだが。ただ、上記例でうまくいく理由を考えることででfindの奥深さを味わった。思わぬ課題を出してくれた同僚に感謝。 findの奥深さ -pruneというのは条件に一致したディレクトリ配下は検索しないオプションだ。ただし、そのディレクト