Linuxコマンド集
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

find  ファイルやディレクトリを検索する (1)

 構文  
find [option] [path...] [expression]

 オプション  
-depth ディレクトリ本体の前に,ディレクトリの内容を先に評価する
-follow シンボリック・リンクの参照先を検索する
-xdev 他のファイル・システムにあるディレクトリは探索しない

 判別式  
-atime n 最後にアクセスされたのがn日前のファイルを検索する
-empty 空のファイルや中身のないディレクトリを検索する
-group gname グループ名がgnameのファイルを検索する(ID番号も指定可)
-mmin n データが最後に修正されたのがn分前のファイルを検索する
-mtime n データが最後に修正されたのが,n日前のファイルを検索する
-name pattern ファイル名がpatternと同じファイルを検索する。ワイルド・カードを用いることができる
-perm mode ファイルのアクセス権がmodeであるファイルを検索する。modeには8進数を用いることができる
-type c 指定したファイル・タイプを検索する。cはdがディレクトリを,fが通常ファイルを,lがシンボリック・リンクを表す
-user uname 所有者がunameになっているファイルを検索する(IDの数値も指定可能)
-size n[bckw] nのサイズのファイルを検索する。nの後にcを付加すると単位がバイトに,kを付加するとKバイトになる。何も付けないとブロック(通常は1ブロック=512バイト)になる

 アクション  
-exec command \\; 検索後,commandを実行する。このとき{}をコマンドで用いることにより,検索結果をコマンドに引き渡す
-ok command \\; -execと同様に検索後commandを実行する。ただし,ユーザーに問い合わせる
-print 検索結果を標準出力する。このとき結果をフルパスで表示する
-fprint file 検索結果をfileに書き出す。同名のファイルがある場合は上書きをする
-ls 結果をファイル詳細付きで表示する。"ls -dils"と同様な形式を指定する

 説明  

ファイルやディレクトリを検索する。expressionはオプション,判別式およびアクションの組み合わせからなる。pathは検索するディレクトリを示し,これ以下のディレクトリが検索対象となる。


 判別式中の数字nについて  

数字を判別式として用いる場合,数字の前に"+"をつけると,n以上の数が検索対象となり,"-"をつけると以下の数が検索対象となる。また,何もつけないと,等しいファイルが検索対象になる。


 判別式中の演算子  

複数の判別式を用いるとき,判別式を演算子で結ぶ。代表的な演算子は以下の通り。表中のexprは判別式を表す

( expr ) カッコのなかを優先的に判別する
-not expr exprと異なる場合,検索対象となる
expr1 -and expr2 expr1とexpr2をandで評価する
expr1 -or expr2 expr1とexpr2をorで評価する

 使用例  
ホームディレクトリ以下の拡張子shtmlのファイルをファイル詳細付きで検索する
$ find ~/ -name "*.shtml" -ls
444226  1 -rw-r--r-- 1 hoge   hoge  86 Nov 16 02:40 /home/hoge/index.shtml

ホームのpublic.shtml以下で拡張子がgifでかつサイズが
100Kバイト以上のファイルを探し,結果をresultファイルに書き込む
$ find ~/public.shtml -name "*.gif" -and -size +100k -fprint result

tempを含むファイルを探し,削除を行う
$ find ~/ -name "*temp*" -ok rm {} \;

 関連事項  
locatelsファイルやディレクトリを探す