次: , 前: Full Name Patterns, 上: Name


2.1.3 すばやい完全な名前の検索

実際にディスク上のディレクトリをスキャンすることなく(きっと遅いでしょ う),ファイルを名前で検索するために,locateプログラムを使用する ことが可能です.与えたそれぞれのシェルパターンに対し,locateは, 一つ,またはそれ以上のファイル名のデータベースを検索し,パターンを含む ファイル名を表示します.シェルパターンの詳細は,See Shell Pattern Matching.

パターンが—メタ文字を含まない—通常の文字列の場合,locateは, 文字列を含むすべてのファイル名を表示します.パターンがメタ文字を含む場 合,locateはパターンに正確にマッチしているファイル名のみ表示しま す.結果として,メタ文字を含むパターンは,通常`*'で開始すべきで, 同じもので終わることが最も多くなっています.例外は,ファイル名の最初ま たは最後への,明示的なマッチを試みるパターンです.

locateをファイル名の最後の部分(ファイルの“ベース名”)に対しての みマッチさせたい場合,`--basename'を使用することが可能です.反対の 動作がデフォルトですが,`--wholename'オプションを使用して,明示的 に選択することが可能です.

以下のコマンドを考えます.

     locate pattern

以下とほとんど等価です.

     find directories -name pattern

ここでのdirectoriesは,情報を含んでいるファイル名データベースのディ レクトリです.違いはlocate情報が古い可能性があり,そして, locatefindとわずかに異なるパターンでワイルドカードを扱 うことです(see Shell Pattern Matching) .

ファイル名データベースには,データベースが最後に更新されたときにシステ ムに存在したファイルのリストが含まれています.システム管理者はデフォル トのデータベースのファイル名,データベースを更新する頻度,そして,エン トリーを含むディレクトリを選択することが可能です.

locateが検索するファイル名データベースを選択する方法は以下のよう になります.デフォルトはシステムに依存します.

--database=path
-d path
デフォルトのファイル名データベースを検索する代わりに,path内のファ イル名データベースを検索し,それはコロンで分けられたデータベースのファ イル名リストとなります.検索するデータベースファイルのリストを設定する ために,環境変数LOCATE_PATHを使用することも可能です.両方使用さ れている場合,オプションは環境変数に優先します.