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


23

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

これを達成する簡単な方法、または私が望むことをする同様のユーティリティはありますか?(注:のように、それはインデックスを維持する必要がありますmlocateので、find例えば、許容されない)のおかげで。

回答:


16

-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つのデータベースファイルを作成し、次のように2つのデータベースパスのオプションでLocateを使用します。

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

これは部分的な答えなので、賛成です。ただし、1つのパスのみをホワイトリストに登録できます。私の質問は、特に複数のパスをホワイトリストに登録する方法についてでした。
アンドリューフェリエ

1
答えを改善し、処理を容易にするために、エイリアスを作成することをお勧めします
ジャンホウ

いい答えだ!明確化のおかげで、2つのデータベースを並行して検索できるとは思いませんでした。より良い回答が到着しない限り、これを受け入れたとマークします!
アンドリューフェリエ

あるupdatedb -l 0 -U /home/user/music再帰的な?私の場合にはしていないようです
ガイア

22

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

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

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

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

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


いいえ、それは私が望むものの正反対です。これにより、これらのディレクトリを除くすべてのインデックスが作成されます。
アンドリューフェリエ

PRUNEPATHSは、ディレクトリ以外のすべてで設定できます。この方法では、ディレクトリのみがスキャンされます。
LnxSlck

OK、わかりやすい編集に感謝します。インデックスを作成するディレクトリと一緒にサブディレクトリを追加するとき、それらをPRUNEPATHSに追加することを忘れないでください。ただし、動作します。提案をありがとう。
アンドリューフェリエ

はい、知っていますが、それを行うためのmlocateについての情報はあまりありません。findのようなものを使用できませんか?
LnxSlck

いいえ、大量のデータがあるため、インデックスを作成することが重要です。問題を明確にしました。
アンドリューフェリエ

1

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

  1. クイックサーチは -私のSearchToolは別の方法を使用するので、」:それは、その出力の検索を行い、検索フォルダのリスト内容に『ls』のコマンドを使用しています。この方法での検索速度は、それが作るために持っている最初の時間を除いて(非常に高速です。 「ls」出力)。」

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

  1. ツールトラッカーGUIを使用する
  2. かなり不自由なソリューションsudo find "検索ディレクトリをここに配置"> files.list grep 'filename' files.list

複数の回答を追加しないようにしてください。必要に応じて、既存の回答を編集し、詳細情報を含めます。ありがとう。
jokerdino

はい、それを行います
-LnxSlck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.