[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
このマニュアルは,指定した基準にあったファイルを検索する方法と,見つけた
ファイルに様々なアクションを実行する方法を示します.これらの作業を実行す
るために使用する主なプログラムは,find
,locate
,そして
xargs
です.このマニュアルにある例は,これらのプログラムのGNUバー
ジョン特有の能力を使用します.
GNU find
は,元々Eric Deckerによって書かれ,David MacKenzie,Jay
Plett,そしてTim Woodによって拡張されました.GNU xargs
は,元々
Mike Rendellによって書かれ,David MacKenzieによって拡張されました.GNU
locate
とそれに関連するユーティリティは,元々James Woodsによって書
かれ,David MacKenzieよって拡張されました.`find -print0'と
`xargs -0'に関するアイデアは,Dan Bernsteinによります.その他,多く
の人がバグの修正,小さな改良,そして有益な提案を寄与してくれました.どう
もありがとう!
これらのプログラムに関するメールでの提案とバグの報告先は
bug-gnu-utils@prep.ai.mit.edu
になります.`find --version'を
実行して得られるバージョンナンバーを含めてください.
1.1 スコープ | ||
1.2 概要 | ||
1.3 find の式 |
簡潔にするため,このマニュアル内の単語ファイルは,通常のファイル, ディレクトリ,シンボリックリンク,またはディレクトリエントリを持つノード のようなその他のあらゆるものを意味します.ディレクトリエントリはファ イル名とも呼ばれます.ファイル名は,ファイルに前置されるパス内のディレ クトリを,いくつか含む,全て含む,または全く含まないかもしれません.この マニュアルで"ファイル名"と呼ばれるものの全ての例があります.
parser.c README ./budget/may-94.sc fred/.cshrc /usr/local/include/termcap.h |
ディレクトリツリーはディレクトリとそれが含むファイル,その全てのサ ブディレクトリとそれが含むファイル等です.それは,単一のディレクトリでは ないファイルとすることも可能です.
これらのプログラムは,一つまたはそれ以上のディレクトリツリー内部の,以下 のようなファイルを見つけることを可能にします.
一旦探しているファイル(または,探している可能性があるファイル)を見つける と,単純なそれらの名前のリスト以上のものにすることが可能です.ファイルを 個別にまたは様々な大きさのまとまりとして,属性のあらゆる組み合わせを取得 したり,多くの方法で処理したりすることが可能です.見つけたファイル上で実 行したい動作は,以下のことだけに制限されません.
このマニュアルは,これらのそれぞれの作業を実行する方法と,それ以上のもの を記述しています.
与えられた基準に一致するファイルのリストを作成し,その上でコマンドを実行
するために使用される主なプログラムは,find
,locate
,そして
xargs
です.追加のコマンドはupdatedb
で,それはlocate
が使用するデータベースを作成するために,システム管理者が使用します.
find
はディレクトリ階層内でファイルを検索し,見つかったファイルの情報を出力します.以下のように実行します.
find [file...] [expression] |
ここに典型的なfind
の使用方法があります.この例は,`/usr/src'
をルートとしたディレクトリツリー内で,名前が`.c'で終り,100Kバイト
以上の大きさを持つ,全てのファイルの名前を出力します.
find /usr/src -name '*.c' -size +100k -print |
locate
は,特別なファイル名のデータベースで,パターンに一致するファ
イル名を探します.システム管理者は,データベースを作成するために
updatedb
を実行します.locate
は以下のように実行します.
locate [option...] pattern... |
この例は,デフォルトファイル名のデータベースで,名前が`Makefile'ま
たは`makefile'で終わる,全てのファイルの名前を出力します.データベー
スに保存されるファイル名は,システム管理者がupdatedb
を実行した方
法に依存します.
locate '*[Mm]akefile' |
名前xargs
は,EX-argsと発音され,それは"引数を統合する"という意
味があります.xargs
は,標準入力で読み込む引数をかき集めることで構
築しコマンド行を実行します.これらの引数は,find
で生成されるファ
イル名のリストとなることが最も多くなっています.xargs
は,以下のよ
うに実行します.
xargs [option...] [command [initial-arguments]] |
以下のコマンドは,ファイル`file-list'内にリストアップされているファ イルを検索し,単語`typedef'を含むものの全ての行を出力します.
xargs grep typedef < file-list |
find
の式
ファイルを選択するためにfind
が使用する式は,一つまたはそれ以上の
プライマリから成り立ち,それらはそれぞれ分離したfind
へのコ
マンドライン引数です.find
はそのたびに式を評価し,ファイルを処理
します.式は以下のプライマリの形式のいずれかを含むことが可能です.
2つのプライマリの間のオペレータは省略可能です.そのデフォルトは `-and'です.プライマリをより複雑な式に連結する方法は, See section 2.11 オペレーターの主なものを組み合わせる.式が`-prune'以外のアクショ ンを含まない場合,全ての式が真である全てのファイルで,`-print'が動 作します(see section 3.1 ファイル名の出力).
式の中にオプションがあるとき,それぞれのファイルに対し評価されるのではな く,すぐに影響を与えます.そのため,明確にするため,式の最初にそれらを配 置するのが最善です.
プライマリの多くは引数をとり,それらはfind
への次のコマンドライン
引数の直後に続きます.引数は,ファイル名,パターン,またはその他の文字列
になるものもあります.それ以外は数字です.数字の引数は以下のように指定可
能です.
+n
-n
n
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |