Linuxに「すべて」のようなファイル検索エンジンはありますか?


46

WindowsにはEverythingという素晴らしいファイル検索エンジンがあります。これは(とは異なりfind)非常に高速で、(とは異なりlocate)常に最新の結果を返します。私の知る限り、NTFSジャーナルからデータベースを埋めることで機能します(他のファイルシステムでは機能しません)。

Linux(ext3またはext4)に似たようなもの(GUIについては気にしません。私のポイントは速度と最新の保証です)があるのでしょうか。Googleで検索しましたが、何も見つかりませんでした。このようなことはできますか、誰かがそれに取り組んでいますか?


2
Everythingで気に入っているのは、瞬時に動作するだけでなく、6つのWindowsインストールと複数のデータパーティションを備えたマルチブートシステムなど、複数のパーティションでも機能することです。単一のパーティションだけでなく、複数のLinuxパーティションで機能するLinux検索が必要です。
アーチパーソンズ

独自の特性(インクリメンタルUPDATEB、リアルタイムまたはセキュアインデックス付け、...)を使用したロケートの多くのバリアントが存在します(mlocate、slocate、rlocate、...)。すべてが高度に構成可能です(updatedb.confのマンページとLocate)
マヌH

回答:


30

rlocateを見ると、locateの再実装であり、常に最新の状態になっています。もう1つの興味深いプロジェクトは、リアルタイムインデックス作成をサポートし、(beagleのような)追加の全文検索を可能にするリコールです。最後に、リアルタイムインデックス作成もサポートするDoodleについて言及する必要があります。落書きにはナマズのような素敵なフロントエンドがあります

たとえば、urxvtを端末エミュレータとして使用し、次のように記述することにより、結果を(r)locateをクリックできるようにすることもできます。

URxvt.perl-ext: default,matcher URxvt.urlLauncher: /usr/bin/gnome-open     
URxvt.matcher.button: 1 URxvt.matcher.pattern.1: /.*

(およびxrdb -load ~/.Xdefaultsその後実行)


1
この答えは受け入れられるべきだと思います。rlocateそれ自体はすでに完全な回答をしています。
プネヘヘ

4
2017年はどうですか?rlocateはLinux 2.6に言及しており、Ubuntu 16.04パッケージには言及していません。reollはおもしろくて更新されているように見えますが、必要以上にやり過ぎです。doodleには16.04の時点でUbuntuパッケージがあるため、オプションになる可能性があります。
ステファンゴーリチョン

リコールが過剰である理由は、コマンドラインからリコールを実行することもできます。また、必要に応じてkdeおよびunityと統合されます。
学生

catfishの最大の問題は、ファイルを操作できないことShow in File Managerです。検索結果から20個のファイルをコピーする場合、20回必要です。
アナン

rlocateのドキュメントには、満たす方法がわからない「カーネル構成」要件のリストがあり、それを展開して実行./configureすると、「完全なカーネルソースでパッケージをインストールする必要がある」と言われます。このツールは達人でない人には届かないようです。
Qwertie

7

また、Linux用の「すべてを検索」ツールを検索し、Ubuntuリポジトリで「Search Monkey」を発見しました。大好きです!

軽量で、読み込みが速く、ワイルドカード検索は大量の結果を即座に生成し、さらにフィルターと高度な検索方法を備えています。

Linux用の「すべて」の検索ツールが戻ってきました!


リンクが壊れています
クリスネビル

4

これをファイルシステム内に実装する興味深いアイデアですが、そのようなものは私の知る限り存在しません。データを早期に把握できるように、上位fsレイヤーに深く潜り込もうとするいくつかのアドオン(更新:すべてがこのカテゴリー自体に該当します)を除いて、以下の満足のいくプロセスに制限されているのではないかと心配しています通常のインデックス作成。

探しているものに最も近いものは、libferris仮想ファイルシステムかもしれません。

インデックス作成の世界では、少なくともそのインデックスを更新および追加できるglimpseをご覧ください。

更新:「すべて」に関するものを読んだだけで、FSに固有のものではないようです。そのため、libferrisはそれほど遠くなく、ファイル名だけでなくコンテンツのインデックスも作成できます。常に最新であるというニーズを満たします。


Ferrisのメーリングリストは2007年以降枯渇し、2010年以降は継続しません。mi -2016と2017年3月の間にアクティブではなかったgithubリポジトリがあります おそらくそれは続くでしょう。
ステファンゴーリチョン


2

Angry Searchをチェックしましたか。説明の中で、それはすべてのものに似ていると主張しています。FSearchも同じことを主張しています。


1
Linux向けのEvernoteの代替をGoogleで検索したときに、FSearchを指す検索結果の数を考えると、ここに投稿したのはあなただけだと驚いています。
Ghos3t

1

inotifyを使用して、数行のコードでこのようなものをビルドすることができるはずです(シェルスクリプトを使用してこれを実装できるinotify-toolsパッケージもあります)。

(そのようなツールがジャーナルから駆動されることに非常に驚いたでしょう-おそらくそれは仮想ファイルシステム層に実装されています)


1
inotify再帰的ではないので、ここで役に立つかどうかはわかりません。ツリー全体のウォッチを作成するのは簡単ですが、カーネルは何万ものウォッチを処理できますか?できたとしても、これは私にとって効果的な方法とは思えません。
-maaartinus


1

btrfsfind-newサブボリュームに対するコマンドを何年も実装しています。比較的最新のスナップショットツリーを保持している場合は、それを使用して、ファイルシステムのすべての変更を原子的に簡単に監視できます。

次のように使用します。

btrfs sub find-new /chk/path [gen-id]

同じコマンドとの比較に必要なgen-idを取得できますが、偽のgen-idを使用します。ここに詳細情報があります


1

Everythingとほぼ同じように動作するLocateコマンドのUIフロントエンド:

https://github.com/AlexTuduran/Locator/releases


1
これは、locate自動的に更新されることのない誤った前提の上に構築されているようです。
ロアイマ

開発してください。Locateが更新されるとはどういう意味ですか?
アレックスツドゥラン

GitHubプロジェクトでは、データベースが自動的に更新されないことを除いて、Unixコマンドlocateは同じ原則を使用していると述べていますlocateパッケージには、cron自動的にデータベースを更新しないタスクを。
ロアイマ

それが本当なら、それはツールの目標を助けるだけです。データベースを自動的に更新すると、ユーザーは別のタスクを実行する必要がなくなります。すぐに更新する必要がある場合、ユーザーは引き続きデータベースを明示的に更新できます。それとも、誤った前提に関するここでの懸念は何ですか?
アレックスツドゥラン

1

Stretchを実行しているRaspberry Pi 3 B +でAngry Searchを使用していますが、正常に動作します。Windowsですべて検索するのと同じように、非常に高速です。ファイルをすばやく見つけることができるのはとてもうれしいことです。

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