総合手引 | セクション 1 | English | オプション |
pattern にはシェルで使われるワイルドカード "( *" "amp;?" "\" "amp;[" "amp;]") を使用することができます。 その場合、ワイルドカードをシェルに解釈されないように エスケープしなくてはいけません。 直前にバックスラッシュ ("\") をつけると、いかなる文字も、 その文字が持つ特殊な意味が打ち消されます。 スラッシュ ("/") も含め、いかなる文字も特殊な意味を 持ちません。
また、ワイルドカードを含まないパターン ("foo") を 指定した場合、 locate は "*foo*" が指定されたものと解釈します。
歴史的な事情で、以前の locate は 32 から 127 までのキャラクタコード しか扱うことができませんでした。 現在の処理方法では改行 ('\n') とヌル ('\0') 以外のキャラクタ コードを処理できます。 これまでサポートされていたプレインASCIIのみで構成された ファイル名については、使用するメモリの量は増えていません。 32 未満、あるいは 127 をこえるキャラクタコードを含むファイル名 については、2 バイトを使って格納されます。
使用可能なオプションは以下のとおりです。
| |
データベースの統計を表示して終了します。 | |
| |
通常の出力を行わず、マッチしたファイル名の数を表示します。 | |
| |
デフォルトのデータベースを使わず、
database
を使って検索します。
複数回
オプションの database はコロンで区切ることで複数のデータベースを使うことができます。 また、1つのコロンはデフォルトのデータベースを表します。 $ locate -d $HOME/lib/mydb: foo は "foo" をパターンとして、 最初に $HOME/lib/mydb を、次に /var/db/locate.database を検索します。 $ locate -d $HOME/lib/mydb::/cdrom/locate.database foo は、 "foo" をパターンとして $HOME/lib/mydb, /var/db/locate.database, /cdrom/locate.database の順番で検索します。 $ locate -d db1 -d db2 -d db3 patternは "$ locate -d db1:db2:db3 pattern" や "$ locate -d db1:db2 -d db3 pattern"と同じです。 データベースの名前として - を指定した場合、標準入力から読み込みます。 例えば、次のようにデータベースを圧縮して使うことができます。 $ zcat database.gz | locate -d - pattern これは、高速な CPU、少ない RAM、遅い I/O を持つコンピュータを 使っている場合に便利です。 この場合、1つのパターンしか指定することができません。 | |
| |
パターンとデータベースの間での大文字と小文字の違いを無視します。 | |
| |
マッチしたファイル名の表示を、最大 number 個に制限します。 | |
| |
stdio(3) ライブラリのかわりに mmap(2) ライブラリを使います。 これはデフォルトの動作です。ほとんどの場合で、高速に動作します。 | |
| |
mmap(2) ライブラリのかわりに stdio(3) ライブラリを使います。 | |
/var/db/locate.database | locate データベース |
/usr/libexec/locate.updatedb | locate データベースを更新するためのスクリプト |
/etc/periodic/weekly/310.locate | |
データベース再構築を起動するスクリプト | |
LOCATE_PATH | |
データベースのパスを指定します。空文字の場合は無効です。
| |
;login, pp. 8-10, Finding Files Fast, 8:1, 1983.
,locate データベースファイルの所有者は "nobody" となっています。 find(1) ユーティリティはユーザ名 "nobody" 、グループ名 "nobody" 、あるいはその他のユーザに対してリード属性がない ディレクトリを見付けた場合、 そのディレクトリの検索をスキップします。 例えば、ユーザのホームディレクトリに読み込み属性が なかったときは、そのユーザの全てのファイルはデータベースに 登録されません。
locate データベースの内容について、バイト順序の問題が解決されていません。 バイト順序が違うコンピュータ同士では、 データベースの共有ができません。 両方のアーキテクチャで int のサイズが同じ場合、 locate はホストのバイト順序、ネットワークのバイト順序の 違いに対応します。 そのため、 FreeBSD Ns /i386 (リトルエンディアン) 上で locate SunOS/sparc (ビッグエンディアン) 上で構築された データベースを使うことができます。
LOCATE (1) | June 6, 1993 |
総合手引 | セクション 1 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | It's a UNIX system, I know this! | ” |
— Lex Murphy, Jurassic Park |