ファイルをさがす

find

UNIXにおいてたくさんのディレクトリの下に散らばったファイルの中から ある条件にしたがったファイルを見つけるためには findを使う。

find の使用方法

ある名前のファイルを見つけるというのが findの一番良く使われる使い方である。
今いるディレクトリ(カレントディレクトリ)から下のディレクトリにある fileという名前のファイルを探すためには以下のようにコマンドを使用する。

# find . -name file -print

最初の . (ピリオド、カレントディレクトリを表す)が探すディレクトリをになる。
-nameの後ろに探すファイル名を打ち込んで、最後に-printを必ず付ける。
(-printが無いと探し出したファイル名が表示されない)
またファイル名には正規表現も使える。
例えば、C言語のプログラムファイルだけを探す時は以下のようにする。

# find . -name "*.c" -print

*以外の特殊文字としてはシェルのコマンドラインで使用できるもと 同じものが使用できる。( ?, [ ] )
-nameの代わりに以下のオプションを使うことによって名前以外の条件で ファイルを探すことができる。

-mtime [-|+]day
日数(day)以前(+)、以後(-)に更新されたファイル
-newer file
fileより新しく作られたか書き換えられたファイルに一致
-size [-|+]SIZE
ファイルのサイズがSIZEに一致したファイルを探す
単位はブロック(512byte)、SIZEを100とすると512*100byteの大きさの ファイルを表す。
-SIZEはそのブロック数より小さいファイル、+SIZEは大きいブロック数を表す。
-type TYPE
ファイルのタイプ(TYPE)を調べる
d
ディレクトリ
f
普通のファイル

find の応用

findによって探したファイルに対して他のコマンドを実行することができる。
良く使われるのは、あるディレクトリ以下のファイルを消す時である。
カレントディレクトリの下のcoreという名前のファイルを消すには以下のように 打ち込む。

# find . -name core -exec rm {} \;

Prev | Next
Home | Contents
abe@injapan.net