Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

find

ファイルを検索する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
find [PATH] [EXPRESSION] [COMMAND]

 findコマンドは、PATHに指定したディレクトリ内のファイルとディレクトリを検索して、検索結果を表示します。この時、検索条件を式で指定することができます。検索条件を指定しなければ、PATHで指定したディレクトリ内のすべてのファイルとディレクトリを表示します。

引数
① PATH
ファイルを検索するディレクトリのパスを指定します。省略時には、Linuxではカレントディレクトリ内を検索しますが、FreeBSDやSolarisではエラーが発生します。
② EXPRESSION
検索条件を式で指定します。式は下の表のように指定します。
検索条件となる式
内容
-atime n「n」には数値を指定
-atime nn日前が最終アクセス日付のファイルやディレクトリを検索
-ctime n「n」には数値を指定
-ctime nn日前に最後にステータスが変更されたファイルやディレクトリを検索
-mtime n「n」には数値を指定
-mtime nn日前が最終更新日付のファイルやディレクトリを検索
-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」に指定した名前のファイルやディレクトリを検索
HINT!

 日付を条件に検索する「-atime」などでは、「+n」「-n」のように日付を指定することもできます。「+n」とするとn日前より古いファイルを、「-n」とするとn日前より新しいファイルを検索します

HINT!

 ファイルやディレクトリの名前を条件として検索する場合にはワイルドカードを使用できます。

 ワイルドカード

HINT!

 複数の条件で検索する場合には、それぞれの式を「-and」(かつ)あるいは「-or」(または)で連結します

③ command
検索結果の処理方法を式で指定します。下に処理方法の指定方法をまとめます。省略時には、「-print」を指定したことになります。
検索結果の処理方法を指定する式
処理
-exec COMMAND [args] \;「COMMAND」に指定したコマンドを実行します。「args」には実行するコマンドの引数を指定します
-lsファイルやディレクトリの詳細を一覧表示します
-print検索結果を一覧表示します
サイズを指定してファイルを検索する
$ 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コマンド辞典トップページに戻る

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5