web-dev-qa-db-ja.com

特定のディレクトリにのみインデックスを付けるようにmlocateを取得するにはどうすればよいですか?

Ubuntuサーバーで mlocate を使用したいのですが、特定のディレクトリ(例:/homeおよび/dataのみにインデックスを付けますが、/の下にあるすべてではありません)。ただし、mlocateの標準構成は反対の方法で機能します。削除するパスを(Prune_PATHSで)指定します。

これを達成する簡単な方法、または私が望むことをする同様のユーティリティはありますか? (注:mlocateのようなインデックスを維持する必要があるため、たとえばfindは受け入れられません)ありがとう。

21
Andrew Ferrier

-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
14
Janghou

ファイルを編集/etc/updatedb.conf

検索したくないディレクトリでPRUNEPATHSを設定します

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS:updatedbによってスキャンされるべきではないディレクトリのパス名の空白で区切られたリスト。各パス名は、locateによってディレクトリが報告される形式とまったく同じである必要があります。デフォルトでは、パスはスキップされません。

上記の構成情報はすべて、ユーティリティupdatedbのコマンドラインオプションを使用して変更または更新することもできます。

22
LnxSlck

私はあなたが試すことができる他のものを見つけました:

  1. QuickSearch -「だから私の検索ツールは別の方法を使用します: 'ls'コマンドを使用して検索フォルダーのコンテンツを一覧表示し、その出力で検索を実行します。初めて「ls」出力を作成する必要があります)。

インデックス作成についてはよくわかりません。

  1. 使用ツール tracker-gui
  2. かなり不自由な解決法須藤は「ここに検索ディレクトリを配置する」を見つけます> files.list grep 'filename' files.list
1
LnxSlck