Linux Tips

ファイルやディレクトリを詳細な条件で探すには

北浦訓行
2001/3/8

 ファイルやディレクトリを素早く探すにはで説明したlocateコマンドは、単純にファイル名もしくはディレクトリ名を検索するだけだが、ここで紹介するfindコマンドは、さまざまな条件によってファイルやディレクトリを検索することができる。

 例えば、全ファイルからmyfile.txtというファイルを探すには、以下のコマンドを実行する。検索するファイル名にワイルドカードを使用する場合は、"*.txt"のように、「"」で囲む必要があるので注意が必要だ。

$ find / -name myfile.txt

 ただし、この例のように、一般ユーザーで/以下の全ディレクトリを検索対象とすると、パーミッションのないディレクトリやファイルも検索しようとするため、「Permission denied」(許可がありません)というエラーメッセージが山のように表示される。また、CD-ROMなどがマウントされていると、CD-ROM内の検索も行ってしまう(ほかのファイルシステムを検索しない場合は、-mountというオプションを指定する)。

 findコマンドには、非常に多くのオプションがある。代表的なものを紹介しよう。詳しくはmanページを参照していただきたい。

-size n
 ファイルサイズをnで指定して検索する。nの単位はデフォルトでは512bytesのブロック。サイズの後にcを付けるとbytesに、kを付けるとKbytesになる。また、サイズの前に+を付けると指定サイズを超えるファイルを、-を付けると指定サイズ未満のファイルを示す。例えば、

$ find . -size +10k

とすると、カレントディレクトリ以下にある10Kbytes以上のファイルを検索する。

-atime n
 最後にアクセスされた時間(日にち)を指定して検索する。nの単位は1日(24時間)。例えば、

$ find . -atime 3

とすると、カレントディレクトリ以下にあるファイルのうち、3日以上アクセスされていないファイルを検索する。-atimeの代わりに-aminを指定すると、nの単位が「分」になる。

-mtime n
 最後に修正された時間(日にち)を指定して検索する。nの単位は1日(24時間)。例えば、

$ find . -mtime +3

とすると、カレントディレクトリ以下にあるファイルのうち、3日以上修正されていないファイルを検索する(注)。-mtimeの代わりに-mminを指定すると、nの単位が「分」になる。

注:3日未満の場合は「-3」のように 「-」を付ける。

-perm 許可属性
 ファイルの許可属性を指定して検索する。例えば、

$ find . -perm a+rw

とすると、カレントディレクトリ以下にあるファイルのうち、全ユーザーが読み込み・書き込み可能なファイルを検索する。

-type n
 ファイルを検索するときは-type fを、ディレクトリを検索するときは-type dを指定する。

-empty
 空(容量が0byte)のファイルやディレクトリを検索する。

-group グループ名
 グループ名を指定して検索する。

-exec コマンド
 コマンドを実行する。例えば、

$ find . -empty -exec rm {} \;

とすると、カレントディレクトリ以下にある空のファイルを削除する。「rm {} \;」は検索されたファイルを削除するという意味になる。ただし、この方法だと-execで指定したコマンドが毎回呼び出されることになり非効率である。

$ find . -empty | xargs rm -rf

とすると、コマンドラインを作成してから実行するので効率的だ。

-ls
 検索によって見つかったファイルを「ls -dils」の形式で表示する。

 findコマンドを実行すると、かなり激しいディスクアクセスが発生し、システムへの負担となる。複数の人数で使用しているシステムでは、検索開始ディレクトリを限定するなどの対策をした方がいいだろう。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間