Previous: Fast Full Name Search, Up: Name


2.1.4 シェルパターンマッチング

findlocateは,ファイル名やファイル名の一部を,シェルパ ターンと比較することが可能です.シェルパターン(hell pattern)は, 以下の特殊文字を含む文字列で,それはワイルドカード(wildcards)メタ文字(metacharacters)として知られています.

メタ文字を含むパターンを,シェルがそれ自身を展開することから避けるため 引用符で囲む必要があります.二重引用符とシングル引用符の両方が動作しま す.そのため,(それ自身は)バックスラッシュでエスケープします.

*
ゼロ以上の文字にマッチします.
?
あらゆる一文字にマッチします.
[string]
文字列stringに存在する,正確に一文字にマッチします.これは文 字集合(character class)と呼ばれます.短いものとして,stringには 範囲を含めることが可能で,それは間にダッシュがある二つの文字です.例え ば,集合‘[a-z0-9_]’は小文字,数字,またはアンダースコアです. ‘!’ や‘^’を開括弧の前に配置することで,否定集合も可能です. このため,‘[^A-Z@]’は大文字とアットマーク以外にマッチします.
\
それ以降の特殊文字の意味をなくします.これは文字集合でも動作します.

findがシェルのパターンマッチ(‘-name’,‘-wholename’等) で行なうテストでは,パターンの中のワイルドカードはファイル名の最初の ‘.’にマッチしません.これはlocateではそうなりません.このた め,‘find -name '*macs'’は‘locate '*macs'’だけでなく .emacsにもマッチします.

スラッシュ文字は,findlocateが行なうシェルのパターンマッ チでは特殊な意味が無いので,ワイルドカードがそれにマッチしないシェルと は異なります.そのため,パターン‘foo*bar’はファイル名 ‘foo3/bar’にマッチし,パターン‘./sr*sc’はファイル名 ‘./src/misc’にマッチするはずです.

locate’コマンドでファイルの場所を知りたいが,完全なリストを見る必 要は無い場合,ちょっとした数の結果を見る‘--limit’オプションや,マッ チの総数だけを表示する‘--count’オプションを使用することが可能です.