ファイルやディレクトリには,名前のほかに,所有しているユーザー,アクセス権限,ファイル・サイズ,タイムスタンプなどの情報が付加されています。findコマンドではこれらの情報を用いてファイル検索が行えます。

ファイル・サイズで検索する

 ファイルのサイズで検索を行う場合は判別式に「-size」を使います。指定する数字の後に「c」を付けるとバイト,「k」を付けるとKバイト単位での指定ができます。例えば,1Kバイトのファイルを探す場合は,次のように実行します。

$ find . -size 1k

 また,指定する数字の前に「+」を付けると指定したサイズ以上のファイル,「-」を付けると指定したサイズ以下のファイルが検索対象になります。例えば,10Kバイト以上のファイルを検索する場合は,

$ find . -size +10k

と実行します。さらに,容量の範囲を指定することも可能です。例えば,10Kバイト以上100Kバイト以下のファイルを探す場合は,次のように実行します。

$ find . -size +10k -size -100k

パーミッションから検索を行う

 パーミッションを指定して検索する場合は,判別式に「-perm」を使います。例えば,パーミッションが「rwxr-xr-x」(755)のファイルを探すには,次のように実行します。

$ find . -perm 755

 特定のパーミッションを条件にして検索することも可能です。指定したパーミッションを含むファイルを探すには,パーミッションの前に「-」を付けます。例えば,ユーザー,グループ,その他のユーザーのすべてが読み込み可能なファイルを探すには,

$ find . -perm -444

と実行します。また,指定したパーミッションのいずれかを持つファイルを探すには,パーミッションの前に「+」を付けます。例えば,ユーザー,グループ,その他のユーザーのいずれかに実行権限が付いているファイルを探すには,

$ find . -perm +111

と実行します。

タイムスタンプから検索を行う

 ファイルのタイムスタンプから検索を行うには,表1のような判別式を使います。

表1●タイムスタンプから検索するときに使える判別式
表1●タイムスタンプから検索するときに使える判別式

例えば,最後にアクセスした時間が2時間前のファイルを探すには,次を実行します。

$ find . -amin 120

 時間の範囲を指定することもできます。指定した数字の前に「+」を付けると指定した以前にアクセスしたファイルを,「-」を付けると指定した以後にアクセスしたファイルを,検索します。例えば,10日前から20日前までに変更されたファイルを探すには,次のように実行します。

$ find . -mtime +10 -mtime +20
各コマンドの詳しい使い方などについては,「Linuxコマンド集」を参照ください。また,「Linuxコマンド逆引き大全」で,行いたい処理内容からコマンドの使い方を調べられます。