Ubuntuサーバーで mlocate を使用したいのですが、特定のディレクトリ(例:/home
および/data
のみにインデックスを付けますが、/
の下にあるすべてではありません)。ただし、mlocateの標準構成は反対の方法で機能します。削除するパスを(Prune_PATHS
で)指定します。
これを達成する簡単な方法、または私が望むことをする同様のユーティリティはありますか? (注:mlocate
のようなインデックスを維持する必要があるため、たとえばfind
は受け入れられません)ありがとう。
-Uオプション(--database-root PATH)を使用できます
updatedb -l 0 -U /home/user/music -o /home/user/databasefile
-oは出力ファイルに書き込みます
-l 0は、あなたがそれを読むことができるようにします。
その後、次のように使用できます。
locate -d /home/user/databasefile Dylan
-dはデータベースパスを設定します
Mlocateを複数のルートディレクトリで使用するには、2つのデータベースファイルを作成し、locateを次のような2つのデータベースパスのオプションで使用します。
locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring
要約してより具体的な質問に答えるには:
updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan
ファイルを編集/etc/updatedb.conf
検索したくないディレクトリでPRUNEPATHS
を設定します
PRUNEPATHS="/tmp /var/spool /media"
PRUNEPATHS
:updatedbによってスキャンされるべきではないディレクトリのパス名の空白で区切られたリスト。各パス名は、locateによってディレクトリが報告される形式とまったく同じである必要があります。デフォルトでは、パスはスキップされません。
上記の構成情報はすべて、ユーティリティupdatedb
のコマンドラインオプションを使用して変更または更新することもできます。
私はあなたが試すことができる他のものを見つけました:
インデックス作成についてはよくわかりません。