find
書式
find [option] [path…] [expression]
説明
find は与えられたファイル名以下のディレクトリツリーを検索し、同じく与えられた評価式を左から右に向かって優先順位の高いものから評価します。評価式の結果が確定すると評価は終了し、引き続き次のファイル名が評価されます。
オプション
- -depth
- ディレクトリ本体の前にディレクトリの内容を先に評価します。
- -follow
- シンボリックリンクの参照先を検索します。
- -xdev
- 他のファイルシステムにあるディレクトリは探索しません。
判別式
- +n
- 数値の引き数を +n と表わすと n より大きいことを示します。
- -n
- 数値の引き数を -n と表わすと n より小さいことを示します。
- n
- 数値の引き数を n はちょうど n と等しいことを示します。
- -amin n
- 最後にアクセスされたのが n 分前のファイルを検索します。
- -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 は以下の通りです。b ブロックスペシャルファイル (バッファ付き) c キャラクタスペシャルファイル (バッファ無し) d ディレクトリ p 名前付きパイプ(FIFO) f 通常のファイル l シンボリックリンク s ソケット - -user uname
- 所有者が uname なファイルを検索します。(IDの数値も指定可能)
- -size n[bckw]
- n のサイズのファイルを検索します。
デフォルトでは n の単位は512バイトのブロックとなります。(n の後に b が続いた場合も同様)
n の後にcを付加すると単位がバイト、kを付加すると単位がキロバイト、wを付加すると2バイトのワードになります。
アクション
- -exec command ;
- 検索後、command を実行します。
このとき {} をコマンドで用いることにより、検索結果をコマンドに引き渡します。 - -ok command ;
- -execと同様に検索後 command を実行します。
ただし、ユーザーに問い合わせを行い、標準入力から回答を受け取ります。 - 検索結果を標準出力します。
このとき結果をフルパスで表示します。 - -fprint file
- 検索結果を file に書き出します。
同名のファイルがある場合は上書きします。 - -ls
- 結果をファイル詳細付きで表示します。
“ls -dils”と同様な形式で標準出力にリストします。
演算子
優先順位の順にリストしてあります。
- ( expr )
- かっこの内部が先に評価されます。
- ! expr
- expr が偽の場合真となります。
- -not expr
- ! expr と同じです。
- expr1 expr2
- And (implied); expr1 が偽の場合は expr2 は評価されません。
- expr1 -a expr2
- expr1 expr2 と同じです。
- expr1 -and expr2
- expr1 expr2 と同じです。
- expr1 -o expr2
- Or; expr1 が真の場合には expr2 は評価されません。
- expr1 -or expr2
- expr1 -o expr2 と同じです。
- expr1 , expr2
- List; 常に expr1 と expr2 の両方が評価されます。
expr1 の値は捨てられ、全体の値は expr2 と等しくなります。
サンプル
例1)/foo/bar 以下の全ファイルの一覧を表示。
# find /foo/bar -type f -print ↵
例2)カレントディレクトリ以下の全ファイルの一覧を表示。
# find . -type f -print ↵
例3)ホームディレクトリ以下のファイルの拡張子が tmp のファイルを削除。
# find ~/ -name “*.tmp” -ok rm {} ; ↵
例4)ホームディレクトリ以下のファイルの拡張子が html のファイルを詳細付きで表示。
# find ~/ -name “*.html” -ls ↵
- カテゴリ:Linuxコマンド
- 公開日:2006/08/30
- ↑ 記事評価をお願いします。
