[ << ] | [ >> ] | [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によります.GNU
findutils (とこのマニュアル)の現在の監理者はJames Youngman.です.その他,
多くの人がバグの修正,小さな改良,そして有益な提案を寄与してくれました.
どうもありがとう!
これらのプログラムに関するメールでの提案とバグの報告先は
bug-findutils@gnu.org
になります.`find --version'を実行し
て得られるバージョンナンバーを含めてください.
1.1 スコープ | ||
1.2 概要 | ||
1.3 find の式 |
簡潔にするため,このマニュアル内の単語ファイル(file)は,通常のファ イル,ディレクトリ,シンボリックリンク,またはディレクトリエントリを持 つノードのようなその他のあらゆるものを意味します.ディレクトリエントリ はファイル名(file name)とも呼ばれます.ファイル名は,ファイルに前 置されるパス内のディレクトリを,いくつか含む,すべて含む,または全く含 まないかもしれません.このマニュアルで"ファイル名"と呼ばれるもののす べての例は以下のものです.
parser.c README ./budget/may-94.sc fred/.cshrc /usr/local/include/termcap.h |
ディレクトリツリー(file name)はディレクトリとそれが含むファイル, そのすべてのサブディレクトリとそれが含むファイル等です.それは,単一の ディレクトリではないファイルにすることも可能です.
これらのプログラムは,一つまたはそれ以上のディレクトリツリー内部の,以 下のようなファイルを見つけることを可能にします.
特定のテキストや特定のパターンにマッチする名前を持つもの.
特定のファイルにリンクしているもの.
最近の特定の期間に使用されたもの.
特定の大きさの範囲にあるもの.
特定の形式(通常のファイル,ディレクトリ,シンボリックリンク等)のもの.
特定のユーザやグループに所有されているもの.
特定のアクセス権限を持つもの.
特定のパターンにマッチするテキストを含むもの.
ディレクトリツリーの特定の深さにあるもの.
上記の組み合わせ.
一旦,探しているファイル(または,探している可能性があるファイル)を見つ けると,単純なそれらの名前のリスト以上のものにすることが可能です.ファ イルを個別に,または様々な大きさのまとまりとして,属性のあらゆる組み合 わせを取得したり,多くの方法で処理したりすることが可能です.見つけたファ イル上で実行したい動作は,以下のことだけに制限されません.
閲覧または編集.
アーカイブへ保存.
削除や名前の変更.
アクセス権限の変更.
グループ分け.
このマニュアルでは,これらのそれぞれの作業を実行する方法と,それ以上の ものを記述しています.
与えられた基準にマッチするファイルのリストを作成し,その上でコマンドを
実行するために使用される主なプログラムは,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
が使用する式は,一つまたはそれ以上の
プライマリ(primaries)から成り立ち,それらはそれぞれ分離した
find
へのコマンドライン引数です.find
はそのたびに式を評価
し,ファイルを処理します.式は以下のプライマリの形式のいずれかを含むこ
とが可能です.
特定のファイルの処理ではなく全体的な処理に影響を与えます.
ファイルの属性に依存し,真または偽の値を返します.
それらを評価するとき他の引数と連結し影響を与えます.
二つのプライマリの間のオペレータは省略可能です.そのデフォルトは `-and'です.プライマリをより複雑な式に連結する方法は, See section オペレータの主なものを組み合わせる. 式が`-prune'以外のアク ションを含まない場合,全部の式が真になるすべてのファイルで, `-print'が動作します(see section ファイル名の出力).
式の中にオプションがあるとき,それぞれのファイルに対し評価されるのでは なく,すぐに影響を与えます.そのため,明確にするため,式の最初にそれら を配置するのが最善です.
プライマリの多くは引数をとり,それらはfind
への次のコマンドライン
引数の直後に続きます.引数は,ファイル名,パターン,またはその他の文字
列になるものもあります.それ以外は数字です.数字の引数は以下のように指
定することが可能です.
+n
nより大きい.
-n
nより小さい.
n
nに等しい.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on September, 28 2005 using texi2html 1.70.