Linux Tips | |
ファイルやディレクトリを詳細な条件で探すには 北浦訓行 |
ファイルやディレクトリを素早く探すにはで説明した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カテゴリ別インデックス |
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|