Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
locate - ファイル名データベースからパターンに合うものを表示する
書式
locate [-d path | --database=path] [-e | -E | --[non-]existing] [-i | --ignore-case] [-0 | --null] [-c | --count] [-w | --wholename] [-b | --basename] [-l N | --limit=N] [-S | --statistics] [-r | --regex ] [--regextype R] [--max-database-age D] [-P | -H | --nofollow] [-L | --follow] [--version] [-A | --all] [-p | --print] [--help] pattern...
説明
このマニュアルページは GNU 版 locate の使用法を説明しています。 locate は、 指定された各パ ターンに対して、 一つまたは複数のファイル名データベースを検索して、 パターンに一致するファ イル名を表示します。 パターンには、 シェルで用いるようなメタキャラクター (`*', `?' 及び `[]') が利用できます。 メタキャラクターは `/' や `.' を特別扱いしません。 したがって `foo*bar' というパターンは、 `foo3/bar' というファイル名に一致します。 また `*duck*' とい うパターンは、 `lake/.ducky' に一致します。 メタキャラクターを含むパターンは、 シェルに よって展開されないようにクォートで囲む必要があります。 パターンが通常の文字列である場合、 つまりメタキャラクターを含んでいない場合、 locate は、 ファイル名のどこかにその文字列が含まれているようなファイルをすべて表示します。 パターンに メタキャラクターが含まれる場合、 locate は、 パターンに一致するファイル名だけを表示しま す。 このことから、 メタキャラクターを含むパターンには、 通常は先頭に `*' をつけておいてく ださい。 同じように、 最後にもたいていは `*' をつけておきます。 ただしファイル名の先頭また は最後に、 意図的に一致させたいパターンとするのであれば、 その必要はありません。 ファイル名データベースは、 最後に更新された時点において、 システムに存在していたファイルの リストからなっています。システム管理者はデフォルトで用いるデータベースのファイル名や更新の 頻度、 またどのディレクトリの情報をデータベースに入れるかなどを選択することができま す。updatedb(1) を参照してください。 locate は端末に対して出力を行ないます。 出力に適さない文字はエスケープ出力されます。 これ は find コマンドの -print 処理と同様にして行われます。 出力先が端末でない場合、 ファイル名 はその文字のまま出力されます。
オプション
-0, --null 区切り文字として、 改行文字ではなく ASCII NUL 文字を用います。 -A, --all 必須の引数すべてに一致する名前のみを表示します。 つまりすべてに一致せず、 1 つやそ の一部にのみに一致するものは表示しません。 -b, --basename 指定されたパターンが、 データベース内にあるファイル名の最後の構成要素に一致した場合 に、 出力結果として一致したものとします。 最後の構成要素は、 通常「ベース名」と表現 されます。 -c, --count 一致したファイル名を出力するのではなく、 一致した総数を出力します。 ただし --print (-p) も指定された場合は除きます。 -d path, --database=path デフォルトのファイル名データベースを検索するのではなく、 path にあるファイル名デー タベースを検索します。 複数のデータベースファイルは、 コロンで区切って指定します。 環境変数 LOCATE_PATH を利用して、 検索するデータベースファイルを指定することもでき ます。 オプションと環境変数がともに指定された場合は、 オプションが優先されます。 パ ス指定に空の要素が指定された場合は、 デフォルトのデータベースファイル名と同義である ものとして扱われます。 データベースは stdin から指定することもできます。 これを行う 場合は path の要素として `-' を利用します。 path の構成要素に複数の `-' が指定され ていた場合、 2 つめ以降は無視されます (そして警告メッセージが出力されます)。 ファイル名データベースのフォーマットは、 GNU find と locate のバージョン 4.0 から変 更されました。 このフォーマットによって、 バイトオーダーが異なるマシン間において も、 データベースが共有できるようになりました。 locate の本バージョンでは、 GNU locate の旧バージョン、 あるいは Unix バージョンの locate や find を自動的に識別し て読み込みを行ないます。 古い locate のデータベースフォーマットへのサポートは、 今 後のリリースにおいては継続しません。 -e, --existing 現在存在している名前のみを表示します (データベースが生成された際に存在していた名前 を表示するわけではありません)。 なおデータベース内に一致する名前が多数存在している と、 プログラム処理速度が多少低下することがあります。 プログラム内においてこのオプ ションを利用している場合は、 locate がチェックした後のファイルは、 削除されてしま い、 確認できないことがある点に注意してください。 -E, --non-existing 現在存在していない名前のみを表示します (データベースが生成された際に存在していた名 前を表示するのではありません)。 なおデータベース内に一致する名前が多数存在している と、 プログラム処理速度が多少低下することがあります。 --help locate のオプション概要を表示して終了します。 -i, --ignore-case パターンとファイル名において、 英字の大文字小文字を区別しません。 -l N, --limit=N 一致する数を N に制限します。 制限数を本オプションにより設定した場合、 -c オプショ ンによって表示される結果数は、 本オプションの値を上回ることはありません。 -L, --follow (-e や -E オプションとともに使って) ファイルの存在チェックを行う場合、 シンボリック リンクが壊れている場合には、 存在していないものとして扱います。 これはデフォルトの 動作です。 --max-database-age D 通常 locate は、 検索するデータベースが 8 日以上古かった場合に、 警告メッセージを表 示します。 このオプションは、 その日数を 8 日以外のものに設定する場合に用います。 負数を指定した場合の動作は未定です。 -m, --mmap 指定可能ですが、 ただし何も行いません。 これは BSD 版の locate との互換性のために存 在しています。 -P, -H, --nofollow (-e や -E オプションとともに使って) ファイルの存在チェックを行う場合、 シンボリック リンクが壊れている場合には、 存在してるものとして扱います。 本オプションの -H 形式 は、 find に合わせるために提供されています。 したがって -H よりも -P を用いることが 推奨されます。 -p, --print --statistics (-S) や --count (-c) が指定されているために、 検索結果が表示されないも のについて、 その結果を表示します。 -r, --regex コマンドライン上から指定されるこのパターンは、 glob パターンとしてではなく、 正規表 現として解釈されます。 この正規表現は、 emacs 内において用いられるものと同様のもの でしたが、 "." が改行文字として扱われるという違いがありました。 GNU find では、 同 じ正規表現が用いられます。 ファイル名のフルパスが、 指定された正規表現にマッチする ときに、 そのファイル名が表示されます (または -c オプションが指定された場合、 その 数がカウントされます)。 正規表現を使ってフルパスの前後を完全に一致させたい場合は、 正規表現においてよく用いるように、 ^ と $ の文字を用いて指定します。 --regextype R 正規表現の方言である R を用います。 サポートされる方言は以下です。 `findutils-default', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `awk', `ed', `egrep', `emacs', `gnu-awk', `grep', `sed' 。 この方言の詳細な説明は Texinfo ドキュメントを参照してください。 -s, --stdio 指定可能ですが、 ただし何も行いません。 これは BSD 版の locate との互換性のために存 在しています。 -S, --statistics 各 locate データベースについての統計情報を表示します。 必須の引数が指定されていなけ れば、 検索処理は行わずに終了します。 BSD 版との互換性のために、 --statistics と同 じ意味で -S が受け付けられます。 ただし locate -S による出力結果は、 locate の GNU 版と BSD 版では異なります。 --version locate のバージョン番号を表示して終了します。 -w, --wholename データベース内に保持されているファイル名との完全一致を行います。 これはデフォルトの 動作です。
環境変数
LOCATE_PATH 検索するデータベース名をコロンで区切ったリスト。 この設定値の先頭あるいは末尾にコロ ンを設定するか、 あるいは設定内に 2 つのコロンを含めると、 locate の異なるバージョ ン間において、 検索結果が異なることになります。
履歴
locate プログラムは、 プログラムの高速検索のために、 James A. Woods が BSD に提供したとこ ろから始まりました。 これは以下の論文において説明されたものです。 Finding Files Fast which was published in Usenix ;login:, Vol 8, No 1, February/March, 1983, pp. 8-10. find プログ ラムのアクションが指定されなかった場合に、 -print アクションがデフォルトとして扱われるよう になり、 find pattern の実装が変更されました。 そこで BSD 開発者は、 この高速検索機能を locate に移転しました。 GNU による locate も、 同一のコードに基づいて実装されています。 locate の主要な変更を、 以下に降順で示します。 4.3.7 旧DBフォーマットにてバイトオーダー順に依存しない対応。 4.3.3 locate の -i がマルチバイト文字を適切に対応。 --max_db_age の導入。 4.3.2 slocate データベースフォーマットの導入。 4.2.22 --all オプションの導入。 4.2.15 --regex オプションの導入。 4.2.14 -L, -P, -H の各オプションの導入。 4.2.12 LOCATE_PATH における空指定は、 デフォルトデータベースを表します。 4.2.11 --statistics オプションの導入。 4.2.4 --count と --limit の導入。 4.2.0 glob 文字がファイル名全体に一致するように。 4.0 LACATE02 データベースフォーマットの導入。 3.7 Locate が複数データベースを検索できるようにします。
バグ
locate データベースは、 改行文字を含むファイル名でも適切に処理を行います。 ただしそれは、 システムの sort コマンドの -z オプションが正しく動作する場合です。 locate が返すファイル名 に改行文字が含まれているべき、 と思われる場合には、 --null オプションの利用を検討してくだ さい。
バグ報告
GNU findutils オンラインヘルプ: <https://www.gnu.org/software/findutils/#get-help> 翻訳に関するバグ報告 <https://translationproject.org/team/> その他の問題について GNU Savannah バグトラッカー経由での報告: <https://savannah.gnu.org/bugs/?group=findutils> GNU findutils パッケージのメーリングリスト bug-findutils において議論されている全般的なト ピック: <https://lists.gnu.org/mailman/listinfo/bug-findutils>
著作権
Copyright © 1994-2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
関連項目
find(1), updatedb(1), xargs(1), glob(3), locatedb(5) 完全なドキュメント <https://www.gnu.org/software/findutils/locate> またローカルにおいては info locate により参照できます。 LOCATE(1)