findコマンドは、PATH
に指定したディレクトリ内のファイルとディレクトリを検索して、検索結果を表示します。この時、検索条件を式で指定することができます。検索条件を指定しなければ、PATH
で指定したディレクトリ内のすべてのファイルとディレクトリを表示します。
- ① PATH
- ファイルを検索するディレクトリのパスを指定します。省略時には、Linuxではカレントディレクトリ内を検索しますが、FreeBSDやSolarisではエラーが発生します。
- ② EXPRESSION
- 検索条件を式で指定します。式は下の表のように指定します。
式 | 内容 |
---|---|
-atime n | 「n」には数値を指定 |
-atime n | n日前が最終アクセス日付のファイルやディレクトリを検索 |
-ctime n | 「n」には数値を指定 |
-ctime n | n日前に最後にステータスが変更されたファイルやディレクトリを検索 |
-mtime n | 「n」には数値を指定 |
-mtime n | n日前が最終更新日付のファイルやディレクトリを検索 |
-user usr | 「usr」に指定したユーザが所有するファイルやディレクトリを検索 |
-group grp | 「grp」に指定したグループに所属するファイルやディレクトリを検索 |
-size n[c] | 「n」には数値を指定 |
-size n[c] | サイズがnブロックのファイルやディレクトリを検索 |
-size n[c] | 数値の後に「c」を付けるとnバイトのファイルやディレクトリを検索 |
-type t | 「t」に指定したタイプのファイルあるいはディレクトリを検索 |
-type t | 「t」に「d」を指定するとディレクトリを、「l」を指定するとシンボリックリンクを、「f」を指定すると通常のファイルを検索 |
-name ptn | 「ptn」に指定した名前のファイルやディレクトリを検索 |
日付を条件に検索する「-atime」などでは、「+n」「-n」のように日付を指定することもできます。「+n」とするとn日前より古いファイルを、「-n」とするとn日前より新しいファイルを検索します
ファイルやディレクトリの名前を条件として検索する場合にはワイルドカードを使用できます。
複数の条件で検索する場合には、それぞれの式を「-and」(かつ)あるいは「-or」(または)で連結します
- ③ command
- 検索結果の処理方法を式で指定します。下に処理方法の指定方法をまとめます。省略時には、「-print」を指定したことになります。
式 | 処理 |
---|---|
-exec COMMAND [args] \; | 「COMMAND」に指定したコマンドを実行します。「args」には実行するコマンドの引数を指定します |
-ls | ファイルやディレクトリの詳細を一覧表示します |
検索結果を一覧表示します |
$ find dir01 -size 70c -ls
ディレクトリ「dir01」内で、サイズが70バイトのファイルを検索して詳細を一覧表示948856 4 -rw-rw-r-- 1 cmd cmd 70 4月13 22:15 dir01/x002
$
$ find dir01 -name x* -ls
ディレクトリ「dir01」内で、名前が「x」で始まるファイルを検索して詳細を一覧表示948855 4 -rw-rw-r-- 1 cmd cmd 65 4月13 22:15 dir01/x001
948856 4 -rw-rw-r-- 1 cmd cmd 70 4月13 22:15 dir01/x002
$ find dir01 -name x* -exec rm {} \;
検索結果を削除 検索条件は同じ$
$ find dir01 -name x* -ls
$
再度検索しても、削除したので何も表示されない
本コンテンツは「UNIXコマンド辞典 ビギナー編」(2003年)を元にWeb用に再編集したものです
All Contents copyright © 2003-2009 Odyssey Communications Inc., Shoeisha Co., Ltd.