回答:
答えはのバージョンに依存します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実装も構成された除外をサポートします。)