回答:
答えはのバージョンに依存しますlocate
使用して、それはだ公平な機会があるとしているあなたmlocate
、そのupdatedb
実行素早くフルディスクスキャンをやって回避することによって:
mlocateは、locate / updatedbの実装です。「m」は「マージ」の略です。updatedbは既存のデータベースを再利用して、ほとんどのファイルシステムの再読み取りを回避します。これにより、updatedbが高速になり、システムキャッシュが無駄になりません。
(データベースは、各ディレクトリのタイムスタンプ、ctime
またはのmtime
いずれか新しい方を保存します。)
のほとんどの実装と同様にupdatedb
、は、mlocate
無視するように設定されているファイルシステムとパスもスキップします。デフォルトでは、そこに何もしないmlocate
の場合、しかし、分布は一般的に、基本的な提供updatedb.conf
など、ネットワークファイルシステム、仮想ファイルシステムを無視している(参照Debianの設定ファイル例を、GNUのはので、これは、Debianに標準的な方法ですupdatedb
されて同様に構成されました)。
mtime
直接の親のみを変更する必要があります。
mlocate
気にctime
してmtime
それが唯一のディレクトリエントリのリストはまだそれが実際のファイルについて自分自身を気にしない手段同じ(無削除または追加されたファイル)、であるかどうかを気に暗示しています。あれは正しいですか ?
locate
ではありませんgrep -R
。ファイルの内容は読み取りません。
変更時間のチェックに加えてmlocate
、/etc/ updatedb.confで指定されている(およびman updatedb.confで説明されている)多数の興味のないファイルや潜在的に重複するファイルがあるファイルシステムの特定のサブツリーも無視します。
updatedb
実装も構成された除外をサポートします。)