「find」で特定のディレクトリを下降しないようにするにはどうすればよいですか?

「find」で特定のディレクトリを下降しないようにするにはどうすればよいですか?

現在、特定のディレクトリを下ることを回避する次の find コマンドがあります。

find . \! \( -name ".hg" -prune \) \! \( -name "localhost" -prune \) \! \( -name "logs" -prune \) -type f

コマンドは期待どおりに動作しますが、より簡潔な解決策を探しています。同じことを何度も繰り返しているように感じますが、同じことを実現するには、よりエレガントで短い方法があるはずです。

答え1

find . \( \( -name .hg -o -name localhost -o -name logs \) -prune \) -o -type f

答え2

find . -not \( -regex ".*/(.hg|localhost|logs)" -prune \) -type f

関連情報