find "を使って特定のファイル名を無視するには?
私のお気に入りのBASHコマンドの一つに
find . -name '*.*' -exec grep 'SearchString' {} /dev/null \;
指定したSearchStringでカレントディレクトリ以下のファイルの内容を全て検索することです。開発者としては、これが便利なことがあります。
しかし、私の現在のプロジェクトとコードベースの構造上、「.svn」を含むディレクトリ以下のファイルや「.html」で終わるファイルを検索しないようにすることで、このBASHコマンドをもっと高度なものにしたいと思っています
findのMANページはちょっと混乱しました。私は-pruneを使ってみましたが、奇妙な動作をしました。.htmlページだけをスキップしようとして(開始するために)
find . -wholename './*.html' -prune -exec grep 'SearchString' {} /dev/null \;
を試してみましたが、期待していたような動作は得られませんでした。私は -prune のポイントを見落としているかもしれません。助けてもらえますか?
ありがとう