findを極める!

1.名前で検索

ここらへんはまだ基本ですね。
find -name "MyCProgram.c"

2.名前で検索(大文字小文字を区別しない)

この場合はinameで。
find -iname "MyCProgram.c"

3.検索するフォルダの階層を指定する

maxdepthとmindepthで指定しますよ。両方同時に使うこともできますな。
find -mindepth 3 -maxdepth 5 -name passwd

4.検索したファイルに対してコマンドを実行

ここらへんはマスターしたいですね。大量のファイルを一気に削除するときにも使えますね。{}に検索したファイル名が代入されていきます。
find -iname "MyCProgram.c" -exec md5sum {} \;

5.一致しないものを検索

これじゃないもの、を検索したいときもありますね。
find -not -iname "MyCProgram.c"

6.node numberで検索

個人的にはここまでのレベルに達していないかな・・・。でも覚えておこう。
find -inum 16187430

7.パーミッションで検索

こちらも便利ですね。パーミッションがちゃんとなっているか確認できますな。
find . -perm g=r -type f -exec ls -l {} \;

慣れ親しんでいるこんな形式でも可能ですな。
find . -perm 040 -type f -exec ls -l {} \;

8.空のファイルを検索

サイズがゼロのファイルはこうやって探します。
find . -empty

9.サイズの大きなファイルを検索

こちらも便利そう。ファイルが大きい順に5つ表示します。
find . -type f -exec ls -s {} \; | sort -n -r | head -5

10.サイズの小さなファイルを検索

上記の逆。次のコマンドではさらに空のファイルを除外しています。
find . -not -empty -type f -exec ls -s {} \; | sort -n | head -5

11.ファイルの種別で検索

ディレクトリだけ検索とか、ですね。
find . -type d

12.指定したファイルよりあとに更新されたファイルを検索

これ知らなかったなぁ・・・。こんなに簡単に出来たのか。
find -newer ordinary_file

13.ファイルサイズで検索

これも便利そう。100Mより大きなファイルだけ検索したいときはこんな感じ。
find ~ -size +100M

14.よく使うfindコマンドを登録

よく使うものはaliasで登録しておくと良いですね、というTips。
alias rmc="find . -iname core -exec rm {} \;"

15.大きなファイルを削除

あるサイズより大きなファイルを一気に削除したい場合。いままでの応用みたいな感じですな。
alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} \;"