「Locate」の版間の差分
(ファイルシステム検索#locateへの転送ページ) |
Kusanaginoturugi (トーク | 投稿記録) (テンプレート:Expansion を削除) |
||
(3人の利用者による、間の5版が非表示) | |||
1行目: | 1行目: | ||
+ | {{Lowercase title}} |
||
− | #redirect[[ファイルシステム検索#locate]] |
||
+ | [[Category:検索]] |
||
+ | [[es:Locate]] |
||
+ | [[pt:Mlocate]] |
||
+ | [[en:Locate]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|find}} |
||
+ | {{Related|Core utilities}} |
||
+ | {{Related|アプリケーション一覧/ユーティリティ#ファイル検索}} |
||
+ | {{Related articles end}} |
||
+ | {{ic|locate}} は、名前でファイルを素早く見つける一般的な Unix ツールです。[[ファイルシステム]]を直接検索するのではなく、事前に構築したデータベースファイルを検索することにより高速な検索を提供します。この方法の欠点は、データベースが作成された後に加えられた変更を {{ic|locate}} が検出できないということです。データベースを定期的に更新することにより、この問題を軽減できます。 |
||
+ | |||
+ | [https://pagure.io/mlocate mlocate] (Merging Locate) は、[[Wikipedia:locate (Unix)|locate]] ユーティリティのより安全なバージョンです。現在のユーザによってアクセス可能なファイルのみを表示します。 |
||
+ | |||
+ | [https://plocate.sesse.net/ plocate] (Posting Locate) は、[[wikipedia:ja:転置インデックス|転置インデックス]]に基づく locate です。mlocate のデータベースを先読みして、より速い(そしてより小さい)インデックスを作成します。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | {{Pkg|mlocate}} か {{Pkg|plocate}} パッケージを[[インストール]]してください。 |
||
+ | |||
+ | [https://www.gnu.org/software/findutils/ GNU findutils] にも ''locate'' の実装がありますが、Arch の {{Pkg|findutils}} にはありません。 |
||
+ | |||
+ | == 使用法 == |
||
+ | |||
+ | {{man|1|locate}} を使う前に、データベースを作成する必要があります。これは、データベースをアップデートする {{man|8|updatedb}} コマンドで行います。 |
||
+ | |||
+ | {{Pkg|mlocate}} には {{ic|updatedb.timer}} ユニットがあり、{{Pkg|plocate}} には {{ic|plocate-updatedb.timer}} ユニットがあります。 |
||
+ | これらのユニットは、毎日1回データベースをアップデートします。{{Pkg|mlocate}} はインストール時にこのタイマーを有効化します。再起動せずにタイマーを使いたい場合は手動で[[起動]]してください。''updatedb'' を root として実行することでいつでもデータベースをアップデートできます。 |
||
+ | |||
+ | 検索時間を削減するために、{{ic|/etc/updatedb.conf}} を編集して特定のファイルシステムとパスを無視するように ''updatedb'' を設定できます。{{man|5|updatedb.conf}} でこのファイルの構文が説明されています。デフォルト設定ファイルの除外パス({{ic|PRUNEPATHS}})には {{ic|/media}} と {{ic|/mnt}} が含まれているので、''locate'' は外部デバイス上のファイルを発見できないでしょう。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [https://jvns.ca/blog/2015/03/05/how-the-locate-command-works-and-lets-rewrite-it-in-one-minute/ How locate works and rewrite it in one minute] |
2023年4月5日 (水) 16:35時点における最新版
locate
は、名前でファイルを素早く見つける一般的な Unix ツールです。ファイルシステムを直接検索するのではなく、事前に構築したデータベースファイルを検索することにより高速な検索を提供します。この方法の欠点は、データベースが作成された後に加えられた変更を locate
が検出できないということです。データベースを定期的に更新することにより、この問題を軽減できます。
mlocate (Merging Locate) は、locate ユーティリティのより安全なバージョンです。現在のユーザによってアクセス可能なファイルのみを表示します。
plocate (Posting Locate) は、転置インデックスに基づく locate です。mlocate のデータベースを先読みして、より速い(そしてより小さい)インデックスを作成します。
インストール
mlocate か plocate パッケージをインストールしてください。
GNU findutils にも locate の実装がありますが、Arch の findutils にはありません。
使用法
locate(1) を使う前に、データベースを作成する必要があります。これは、データベースをアップデートする updatedb(8) コマンドで行います。
mlocate には updatedb.timer
ユニットがあり、plocate には plocate-updatedb.timer
ユニットがあります。
これらのユニットは、毎日1回データベースをアップデートします。mlocate はインストール時にこのタイマーを有効化します。再起動せずにタイマーを使いたい場合は手動で起動してください。updatedb を root として実行することでいつでもデータベースをアップデートできます。
検索時間を削減するために、/etc/updatedb.conf
を編集して特定のファイルシステムとパスを無視するように updatedb を設定できます。updatedb.conf(5) でこのファイルの構文が説明されています。デフォルト設定ファイルの除外パス(PRUNEPATHS
)には /media
と /mnt
が含まれているので、locate は外部デバイス上のファイルを発見できないでしょう。