日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
LOCATE(1) FreeBSD 一般コマンドマニュアル LOCATE(1)
名称
locate - ファイル名を高速に検索する
書式
locate [-Scims] [-l limit] [-d database] pattern ...
解説
locate はデータベースを使って全てのパスを検索し、 pattern にマッチした
ファイル名を表示します。データベースは定期的に(普通は週1回か毎日)再構築さ
れます。データベースの内容は、全ユーザがアクセスすることのできる全ての
ファイル名です。
pattern にはシェルで使われるワイルドカード (``*'' ``?'' ``\'' ``[''
``]'') を使用することができます。その場合、ワイルドカードをシェルに解釈さ
れないようにエスケープしなくてはいけません。直前にバックスラッシュ
(``\'') をつけると、いかなる文字も、その文字が持つ特殊な意味が打ち消され
ます。スラッシュ (``/'') も含め、いかなる文字も特殊な意味を持ちません。
また、ワイルドカードを含まないパターン (``foo'') を指定した場合、 locate
は ``*foo*'' が指定されたものと解釈します。
歴史的な事情で、以前の locate は 32 から 127 までのキャラクタコードしか扱
うことができませんでした。現在の処理方法では改行 (`\n') とヌル (`\0') 以
外のキャラクタコードを処理できます。これまでサポートされていたプレイ
ンASCIIのみで構成されたファイル名については、使用するメモリの量は増えてい
ません。 32 未満、あるいは 127 をこえるキャラクタコードを含むファイル名に
ついては、2 バイトを使って格納されます。
使用可能なオプションは以下のとおりです。
-S データベースの統計を表示して終了します。
-c 通常の出力を行わず、マッチしたファイル名の数を表示します。
-d database
デフォルトのデータベースを使わず、 database を使って検索しま
す。複数回 -d を指定することで、複数のデータベースを使うこと
ができます。
オプションの 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つのパターンしか指定する
ことができません。
-i パターンとデータベースの間での大文字と小文字の違いを無視しま
す。
-l number マッチしたファイル名の表示を、最大 number 個に制限します。
-m stdio(3) ライブラリのかわりに mmap(2) ライブラリを使います。
これはデフォルトの動作です。ほとんどの場合で、高速に動作しま
す。
-s mmap(2) ライブラリのかわりに stdio(3) ライブラリを使います。
関連ファイル
/var/db/locate.database locate データベース
/usr/libexec/locate.updatedb locate データベースを更新するためのスク
リプト
/etc/periodic/weekly/310.locate データベース再構築を起動するスクリプト
環境変数
LOCATE_PATH データベースのパスを指定します。空文字の場合は無効です。 -d
オプションが指定された場合も無効になります。
関連項目
find(1), whereis(1), which(1), fnmatch(3), locate.updatedb(8)
Woods, James A., "Finding Files Fast", ;login, 8:1, pp. 8-10, 1983.
バグ
locate が実際には存在するファイルをリストアップできない場合や、逆に、すで
に削除されたはずのファイルをリストアップしてしまう場合があります。これは
locate が /etc/periodic/weekly/310.locate スクリプトで週に一度更新される
データベースから情報を得ているためです。できて間もないファイルの検索には
find(1) を使ってください。
locate データベースファイルの所有者は ``nobody'' となっています。 find(1)
ユーティリティはユーザ名 ``nobody'' 、グループ名 ``nobody'' 、あるいはそ
の他のユーザに対してリード属性がないディレクトリを見付けた場合、そのディ
レクトリの検索をスキップします。例えば、ユーザのホームディレクトリに読み
込み属性がなかったときは、そのユーザの全てのファイルはデータベースに登録
されません。
locate データベースの内容について、バイト順序の問題が解決されていません。
バイト順序が違うコンピュータ同士では、データベースの共有ができません。両
方のアーキテクチャで int のサイズが同じ場合、 locate はホストのバイト順
序、ネットワークのバイト順序の違いに対応します。そのため、 FreeBSD/i386 (
リトルエンディアン) 上で locate SunOS/sparc (ビッグエンディアン) 上で構築
されたデータベースを使うことができます。
歴史
locate は 4.4BSD から登場しました。 FreeBSD 2.2 で、新たに多くの機能が付
け加えられました。
FreeBSD 4.9 June 6, 1993 FreeBSD 4.9