[ << ] [ >> ]           [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によります.GNU findutils (とこのマニュアル)の現在の監理者はJames Youngman.です.その他, 多くの人がバグの修正,小さな改良,そして有益な提案を寄与してくれました. どうもありがとう!

これらのプログラムに関するメールでの提案とバグの報告先は bug-findutils@gnu.orgになります.`find --version'を実行し て得られるバージョンナンバーを含めてください.


1.1 スコープ

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

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

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

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

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

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


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

オプション(options)

特定のファイルの処理ではなく全体的な処理に影響を与えます.

テスト(tests)

ファイルの属性に依存し,真または偽の値を返します.

アクション(actions)

それらを評価するとき他の引数と連結し影響を与えます.

二つのプライマリの間のオペレータは省略可能です.そのデフォルトは `-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.