「Locate」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (二重転送を修正) タグ: 転送先変更 |
Kusanaginoturugi (トーク | 投稿記録) (テンプレート:Expansion を削除) |
||
| (2人の利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
| + | {{Lowercase title}} |
||
| − | #redirect[[Core utilities#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 は外部デバイス上のファイルを発見できないでしょう。