locate
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 は外部デバイス上のファイルを発見できないでしょう。