トップ 一覧 置換 検索 ヘルプ RSS ログイン

find コマンドの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!サンプル
1日以内に修正されたファイルを検索する
 find ./ -mtime -1

60分以内に修正されたファイルを検索する
 find ./ -mmin -60

ルート直下からファイルを検索するが、エラーを表示しない
 find / -name "*test*" |& grep -v "find:"
 find / -name "*test*" >& /dev/null

60分以内に修正されたファイルのみを検索する
 find ./ -mmin -60 -type f

!!使い方
 find [検索対象パス] [検索式]

カレント・ディレクトリ以下から,ファイル名の末尾が「.c」であるファイルを検索
 $ find -name "*.c"
 ./hello.c
 ./mycat2.c
 ./my_cat.c
,オプション,内容
,-name <名>,ファイル名を指定する
,-size <数値>,ファイルサイズを指定する。10c(10バイト),10k(10Kバイト)+10k(10Kバイト以上)のように指定する
,-atime <日>,最終アクセス日を指定する
,-amin <分>,最終アクセス時刻をX分前で指定する
,-mtime <日>,最終修正日を指定する
,-mmin <分>,最終更新時刻をX分前で指定する
,-perm <MODE>,アクセス権を指定する
,-type <TYPE>,ファイルタイプを指定する。f(ファイル),d(ディレクトリ),l(シンボリックリンク)のように指定する
,-regex <名>,ファイル名を正規表現で指定する
,-iregex <名>,大文字小文字を区別せずファイル名を正規表現で指定する
,-maxdepth <値>,検索するディレクトリの深さを指定する


カレント・ディレクトリ以下から,3日以内に更新されたファイルを検索。
「-3」なら3日以内,「3」なら3日前,「+3」なら3日以上。
 $ find -mtime -3
 ./.bash_history
 ./hello.c
 ./globtest/1.txt
 ./globtest/44.txt
 ./globtest/33.txt
 ./globtest/11.txt
 ./globtest/35.txt
 (以下省略)

カレント・ディレクトリ直下から,ファイルサイズが200バイト以内のファイルを検索。findコマンドは,サブディレクトリの中も再帰的に検索しますので,あるディレクトリ直下だけを調べたい場合は,「-maxdepth 1」を指定。
 $ find -maxdepth 1 -size -200c
 ./calendar.txt
 ./hello.c
 ./.ICEauthority
 ./.gksu.lock
 ./.esd_auth
 ./Examples
 ./.Xauthority
 ./.dmrc

-regexもしくは-iregexオプションを使うと,ファイル名の指定に正規表現が使えます。
 $ find -regex './[a-zA-Z]+.c'
 ./hello.c

findコマンドは,単にファイルを検索するだけではありません。検索結果のファイルに対して何らかのアクションを取ることもできます。次の図16の例では,カレント・ディレクトリ以下にあるファイルで120日以上アクセスのないファイルを削除します。
 $ find -atime +120 -ok rm {} \;

 -ok
はつど確認が出る
 -exec は確認なしで実行

{{category2 OS,Linux}}