Next: Shell Pattern Matching, Previous: Full Name Patterns, Up: Name
実際にディスク上のディレクトリをスキャンすることなく(きっと遅いでしょ
う),ファイルを名前で検索するために,locate
プログラムを使用する
ことが可能です.与えたそれぞれのシェルパターンに対し,locate
は,
一つ,またはそれ以上のファイル名のデータベースを検索し,パターンを含む
ファイル名を表示します.シェルパターンの詳細は,See Shell Pattern Matching.
パターンが—メタ文字を含まない—通常の文字列の場合,locate
は,
文字列を含むすべてのファイル名を表示します.パターンがメタ文字を含む場
合,locate
はパターンに正確にマッチしているファイル名のみ表示しま
す.結果として,メタ文字を含むパターンは,通常‘*’で開始すべきで,
同じもので終わることが最も多くなっています.例外は,ファイル名の最初ま
たは最後への,明示的なマッチを試みるパターンです.
locate
をファイル名の最後の部分(ファイルの“ベース名”)に対しての
みマッチさせたい場合,‘--basename’を使用することが可能です.反対の
動作がデフォルトですが,‘--wholename’オプションを使用して,明示的
に選択することが可能です.
以下のコマンドを考えます.
locate pattern
以下とほとんど等価です.
find directories -name pattern
ここでのdirectoriesは,情報を含んでいるファイル名データベースのディ
レクトリです.違いはlocate
情報が古い可能性があり,そして,
locate
はfind
とわずかに異なるパターンでワイルドカードを扱
うことです(see Shell Pattern Matching) .
ファイル名データベースには,データベースが最後に更新されたときにシステ ムに存在したファイルのリストが含まれています.システム管理者はデフォル トのデータベースのファイル名,データベースを更新する頻度,そして,エン トリーを含むディレクトリを選択することが可能です.
locate
が検索するファイル名データベースを選択する方法は以下のよう
になります.デフォルトはシステムに依存します.
--database=
path-d
pathLOCATE_PATH
を使用することも可能です.両方使用さ
れている場合,オプションは環境変数に優先します.