Linuxでファイル・ディレクトリを検索するためのコマンド「find」について説明します。また、あわせて「find」コマンドの便利な使い方も紹介します。
【find】ファイル・ディスクリプションを検索する
ファイル・ディレクトリを検索するコマンドです。アクションを指定することで、見つかったファイル・ディレクトリに変更を加えることもできます。
1 |
$ find 検索するパス 検索条件 [アクション] |
現在のディレクトリ以下の、sampleというファイル名を検索する場合。
1 |
$ find ./ -name sample |
上記の場合、「./」が検索するパス、「-name sample.txt」が検索条件になります。アクションはオプションなので、今回は設定していません。
検索条件を設定する
ファイル名、所有者、ファイルサイズなどを条件に指定することができます。
よく使う検索条件
-name ファイル名 | ファイル名を検索します。ファイル名にはワイルドカードが使えます。 |
-type [ d | f ] | 指定したファイルタイプを検索する。dはディレクトリ、fはファイルを表します。 |
検索条件は、以下のように複数指定することができます。
(例)現在のディレクトリ以下の*.txtというファイルを検索
1 |
$ find ./ -name "*.txt" -type f |
「find」コマンドでアクションを設定する
「find」コマンドでは、検索して見つかったファイルに対して指定したアクションを実行できます。
「-exec コマンド \;」オプションを使うことで、見つかったファイルに対してコマンドを実行します。また、検索結果は「{}」として扱うことができます。
(例)現在のディレクトリ以下の*.txtというファイルをrmコマンドで削除
1 |
$ find ./ -name "*.txt" -exec rm {} \; |
コマンドの後に「\;」をつけないと、「find: `-exec' に引数が見つかりません」というエラーになってしまいます。