| 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カテゴリ別インデックス |
|
TechTargetジャパン
- 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
