find tips

Unixのfindコマンドは、条件に合うファイルに対して指定の処理をするコマンドです。
例を示します。
find /home -ctime +14 -a -name "core.[0-9]*" -exec rm "{}" ¥;
このコマンドラインは、/homeディレクトリー以下の全てのファイルを検索し、最後に更新されてから14日以上経過し、かつ、名前が「core.」に数 字が続くファイルに対して、削除します。コマンドラインの要素を解説します。
/home    検索の起点となるディレクトリーです。
-ctime +14    最後に更新されてから14日以上経過しているという条件式です。
-a    条件式の論理積です。
-name "core.[0-9]*"    ファイル名に対するパターンです。
-exec    続くコマンドを実行しろという指示です。
"{}"    条件に該当したファイルのパスに置き換えられます。
¥;   コマンドラインの最後にこう書くことになっています。

次の例は、ホームディレクトリー以下のドット記号で始まるファイルの一覧を表示しますが、ディレクトリー自身を表わす「.」と親ディレクトリーを表わす「..」は除きます。

find ‾ -name ".*" -a -not -name "." -a -not -name ".." -print ¥;

次の例は、ホームディレクトリー以下の拡張子が「c」である全てのファイルに対して、「include」という単語を含む行を表示します。

find ‾ -name "*.c" -exec grep "include" "{}" ¥;


(C) 2005 石川直太 無保証
Linux tips に[戻る]
Tips に[戻る]
石川直太のホームページに[戻る]