find だけの使い方はなかなかわからない。find は、他のコマンドとの合わせ技で力を発揮する。 というのは、find は階層構造を下っていくのに適した構造になっているからだ。 階層を下ってさらに付加価値の処理をするということができる。 そのほか、ファイルのタイプ(ディレクトリか、ファイルか)やファイルスタンプなどでの絞り込みもできる。
grep, xargs コマンドと合わせて、 あるディレクトリからサブディレクトリを渡り歩いてすべての html ファイルをみつけ、 その中から特定の単語があるかを調べる、というときに使える。
$ find . -type f -name \*html -print | xargs grep "hogehoge"
-type f は、探す対象をファイルに限定するオプションである。これを指定しないと、 ファイルだけでなく、ディレクトリも対象にする。
上記と同様のことを xargs を使わずに行うこともできる。
$ find . -type f -name \*html -exec grep "hogehoge" {} \;
この右の {} は何かとか、 \; の意味とか考えるときりがないが、 ベテランになると勝手に指が動くようになるもののようだ。