揮発性のメモ2

知識をメモ書きしておく

find の良く使うオプション

良く使わないオプションはマニュアルを見る

オプション
-daystart 現在時刻を今日の24:00とみなす
-xdev ファイルシステムをまたがない
-L シンボリックリンクをたどる
-mindepth n 探す最小の深さ (1ならコマンドラインの引き数をを含まない)
-maxdepth n 探す最大の深さ (1ならディレクトリに入らない)
判別式
-mtime n 最終更新日(日) ※1
-mmin n 最終更新日(分)
-newer file 最終更新日がfileより新しい
-empty 空ファイル
-readable 読み込み可能
-writable 書き込み可能
-executable 実行可能
-name
-iname
名前
 *を使いたいときは""でくくる
-type x ファイルタイプ
 d:ディレクト
 f:ファイル
 p:パイプ
 l:シンボリックリンク
 s:ソケット
-user user 所有者がname
-group group グループがgroup
アクション
-ls ls -dils と同じ出力
-delete ファイル削除
-exec command ; コマンド実行
 {}を出力文字列に置換する
 ; は \; にする
-print0 ファイル名を \0 区切りで出力 (xargs用)


オプションは 探索ディレクトリ、オプション、判別式、アクション の順に書く。

判別式補足

判別式は 前から順番に評価される。 括弧、否定、論理和(-o) が使える
例:名前がhogeかpiyoの、今日作られてたディレクトリ以外のファイル

find ./  \
    -daystart  \
    \( -name hoge -o -name piyo \) -mtime 0 ! -type d  \
    -ls

深さ指定の補足

最小の深さ指定をしないと、引数で指定したファイルやディレクトリから対象になる

$ find /opt/hoge/lib/ -type d
/opt/hoge/lib/    ←★邪魔なことが多い
/opt/hoge/lib/A
/opt/hoge/lib/B
/opt/hoge/lib/C

深さ指定を最小1と指定すると、引数で指定したファイルやディレクトリが対象外にできる

$ find /opt/hoge/lib/ -mindepth 1 -type d
/opt/hoge/lib/A
/opt/hoge/lib/B
/opt/hoge/lib/C