find コマンドは ファイルとディレクトリを見つけるコマンド.ファイルを検索します.ファイルの検索はファイルのメタデータを調べます.つまりi-nodeに入ってる情報。つまりパス名,アクセス時刻,アクセス権です
find使い方。
一番最初にfind コマンドを使ってみる
cd /home/takuya find #ホームディレクトリのファイルを一覧する
find はカレントディレクトリの中身を列挙します.
Find初心者は,該当ディレクトリにCDしてから使うのがコツです.
find のオプション
find のオプションを知ってると捗る。そのままだと出力結果が多すぎて何も出来ない.そこでフィルタを書けて検索する
ディレクトリだけを一覧する
find -type d
空っぽディレクトリだけを一覧する
find -type d -empty
ファイルだけを一覧する
find -type f
大文字小文字を区別しない
- -name の代わりに -iname を使う
find -iname september
日付条件
- -daystartを付けると日付の深夜0時が日付基準なります
今日
find -daystart -mtime -1
一日前
find -daystart -mtime 1
二日前
find -daystart -mtime 2
7日以内
find -daystart -mtime -7
7日以上過ぎたもの
find -daystart -mtime +7
時間条件*1
数字(n) × 24 時間で考えます.数字は マイナス(-)が < で、プラス(+) が > です
72時間以上前全部
find -mtime +2
48時間前〜72時間未満
find -mtime 2
24時間前〜48時間未満
find -mtime 1
24時間以内
find -mtime -1
60分以内
find -mmin -60
ファイルの時間について
- -atime … 最終アクセス時刻 (access time)
- -mtime … 最終変更時刻 (modify time)
- -ctime … 最終ステータス変更時刻 (change time)
階層でしばる
階層を3階層目までで止める
あまり深い階層までいくひつようもないとき
find -maxdepth 3
組み合わせて使います
所有者がTakuyaで最近1日で作ったphp ファイルを探す
find -user takuya -name '*.php' -daystart -mtime -1
見つかったファイルに処理をする
xargs と組み合わせて使います。xargsオススメです.-execよりわかりやすいです.*2
find -perm 777 | xargs -I@ sudo chmod 755 '@'
2017-08-02
ミススペルを 若干修正した。