[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

1. はじめに

このマニュアルは,指定した基準にあったファイルを検索する方法と,見つけた ファイルに様々なアクションを実行する方法を示します.これらの作業を実行す るために使用する主なプログラムは,findlocate,そして 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の式  


1.1 スコープ

簡潔にするため,このマニュアル内の単語ファイルは,通常のファイル, ディレクトリ,シンボリックリンク,またはディレクトリエントリを持つノード のようなその他のあらゆるものを意味します.ディレクトリエントリはファ イル名とも呼ばれます.ファイル名は,ファイルに前置されるパス内のディレ クトリを,いくつか含む,全て含む,または全く含まないかもしれません.この マニュアルで"ファイル名"と呼ばれるものの全ての例があります.

 
parser.c
README
./budget/may-94.sc
fred/.cshrc
/usr/local/include/termcap.h

ディレクトリツリーはディレクトリとそれが含むファイル,その全てのサ ブディレクトリとそれが含むファイル等です.それは,単一のディレクトリでは ないファイルとすることも可能です.

これらのプログラムは,一つまたはそれ以上のディレクトリツリー内部の,以下 のようなファイルを見つけることを可能にします.

一旦探しているファイル(または,探している可能性があるファイル)を見つける と,単純なそれらの名前のリスト以上のものにすることが可能です.ファイルを 個別にまたは様々な大きさのまとまりとして,属性のあらゆる組み合わせを取得 したり,多くの方法で処理したりすることが可能です.見つけたファイル上で実 行したい動作は,以下のことだけに制限されません.

このマニュアルは,これらのそれぞれの作業を実行する方法と,それ以上のもの を記述しています.


1.2 概要

与えられた基準に一致するファイルのリストを作成し,その上でコマンドを実行 するために使用される主なプログラムは,findlocate,そして 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


1.3 findの式

ファイルを選択するためにfindが使用する式は,一つまたはそれ以上の プライマリから成り立ち,それらはそれぞれ分離したfindへのコ マンドライン引数です.findはそのたびに式を評価し,ファイルを処理 します.式は以下のプライマリの形式のいずれかを含むことが可能です.

オプション(options)
特定のファイルの処理ではなく全体的な処理に影響を与えます.
テスト(tests)
ファイルの属性に依存し,真または偽の値を返します.
アクション(actions)
それらを評価するとき他の引数と連結し影響を与えます.

2つのプライマリの間のオペレータは省略可能です.そのデフォルトは `-and'です.プライマリをより複雑な式に連結する方法は, See section 2.11 オペレーターの主なものを組み合わせる.式が`-prune'以外のアクショ ンを含まない場合,全ての式が真である全てのファイルで,`-print'が動 作します(see section 3.1 ファイル名の出力).

式の中にオプションがあるとき,それぞれのファイルに対し評価されるのではな く,すぐに影響を与えます.そのため,明確にするため,式の最初にそれらを配 置するのが最善です.

プライマリの多くは引数をとり,それらはfindへの次のコマンドライン 引数の直後に続きます.引数は,ファイル名,パターン,またはその他の文字列 になるものもあります.それ以外は数字です.数字の引数は以下のように指定可 能です.

+n
nより大きい.
-n
nより小さい.
n
nに等しい.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on January, 21 2003 using texi2html