Gibt es eine Dateisuchmaschine wie "Everything" unter Linux?

46

Unter Windows gibt es eine nette Dateisuchmaschine namens Everything , die (im Gegensatz zu find) sehr schnell ist und (im Gegensatz zu locate) immer aktuelle Ergebnisse liefert. AFAIK funktioniert, indem eine Datenbank aus dem NTFS-Journal gefüllt wird (es funktioniert nicht mit anderen Dateisystemen).

Ich frage mich, ob es für Linux (ext3 oder ext4) etwas Ähnliches gibt (die Benutzeroberfläche interessiert mich nicht; mein Punkt ist die Geschwindigkeit und die aktuelle Garantie). Ich habe gegoogelt, aber nichts gefunden. Kann so etwas gemacht werden oder arbeitet sogar jemand daran?

maaartinus
quelle
2
Das, was ich an Everything mag, ist, dass es nicht nur augenblicklich ist, sondern auch für mehrere Partitionen funktioniert, wie Multiboot-Systeme mit sechs Windows-Installationen und mehreren Datenpartitionen. Ich hätte gerne eine Linux-Suche, die über mehrere Linux-Partitionen hinweg funktioniert, nicht nur über die einzelne Partition.
Arch Parsons
Es gibt viele Lokalisierungsvarianten (mlocate, slocate, rlocate, ....) mit eigenen Merkmalen (inkrementelle Aktualisierung, Echtzeit- oder sichere Indizierung, ...). Alle sind in hohem Maße konfigurierbar (Hilfeseiten von updatedb.conf und locate)
Manu H

Antworten:

30

Sie können sich rlocate ansehen , eine Neuimplementierung von locate, die immer auf dem neuesten Stand ist. Ein weiteres interessantes Projekt ist recoll, das auch die Echtzeitindizierung unterstützt und Ihnen (wie Beagle) zusätzlich die Volltextsuche ermöglicht. Abschließend sollte ich Doodle erwähnen, das auch die Echtzeitindizierung unterstützt. Für Gekritzel gibt es einige nette Frontends wie Wels .

Beachten Sie, dass Sie (r) das Auffinden von Ergebnissen anklickbar machen können, indem Sie zum Beispiel urxvt als Terminal-Emulator verwenden und so etwas wie schreiben

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

(und xrdb -load ~/.Xdefaultsdanach ausführen )

Student
quelle
1
Ich denke, diese Antwort sollte akzeptiert werden. rlocateselbst macht schon eine komplette antwort.
Phunehehe
4
Was ist los in 2017? rlocate erwähnt Linux 2.6 und kein Ubuntu 16.04-Paket. recoll scheint interessant und aktualisiert, obwohl übertrieben für meine Bedürfnisse. Doodle hat Ubuntu-Paket ab 16.04, könnte also eine Option sein.
Stéphane Gourichon
Warum ist Recoll ein Overkill? Sie können Recoll auch über die Befehlszeile ausführen. Es lässt sich auch gut in kde und unity integrieren, wenn Sie möchten.
Schüler
Mein größtes Problem mit Wels ist die Unfähigkeit, mit Dateien zu interagieren - wenn ich 20 Dateien aus den Suchergebnissen kopieren möchte, muss ich das Show in File Manager20-mal tun.
Annan
Die Dokumentation von rlocate enthält eine Liste der "Kernel-Konfigurations" -Anforderungen, die ich nicht erfüllen kann. Wenn ich sie entpacke und ausführe ./configure, muss ich "das Paket mit den vollständigen Kernel-Quellen installieren". Dieses Tool scheint für Nicht-Gurus unerreichbar zu sein.
Qwertie
7

Ich suchte auch nach dem Tool "Search Everything" für Linux und entdeckte "Search Monkey" im Ubuntu-Repository. LIEBE ES!

Es ist leichtgewichtig, lädt schnell und liefert unzählige Ergebnisse. Außerdem verfügt es über Filter und erweiterte Suchmethoden.

Ich habe jetzt mein "Everything" Suchwerkzeug zurück für Linux!

Charles
quelle
Die Verbindung ist unterbrochen
Chris Nevill
4

Interessante Idee, dies verwurzelt im Dateisystem zu implementieren, aber meines Wissens gibt es nichts Vergleichbares. Abgesehen von ein paar Add-Ons, die versuchen, sich tief genug in die oberen fs-Schichten zu graben, um sich frühzeitig einen Überblick über die Daten zu verschaffen (Update: Alles fällt in diese Kategorie), sind Sie leider auf die weniger befriedigenden Prozesse von beschränkt regelmäßige Indizierung.

Was dem, was Sie suchen, am nächsten kommen könnte, ist möglicherweise das virtuelle libferris-Dateisystem.

In der Indizierung Welt, möchten Sie vielleicht einen Blick auf nehmen Blick , die zumindest der Lage ist, seinen Index zu aktualisieren und anhängen.

Update: Ich habe gerade das Zeug über "Everything" gelesen, und es scheint auch dem FS nicht inhärent zu sein, also ist libferris nicht so weit weg, und es erlaubt auch das Indizieren von Inhalten, nicht nur von Dateinamen. Es befriedigt Ihr Bedürfnis, jederzeit auf dem neuesten Stand zu sein.

Tatjana Heuser
quelle
Ferris Mailing - Liste seit 2007 ausgetrocknet und nicht weiter über 2010. Es ist eine Github - Repository , das nicht aktiv zwischen mi-2016 und März 2017 war github.com/monkeyiq/ferris/commits/master . Vielleicht geht es weiter.
Stéphane Gourichon
2

Sie können den locateBefehl verwenden und, wenn Sie die Datenbank aktualisieren möchten, den folgenden Befehl ausführen:

# updatedb

Dieser Befehl aktualisiert die Lokalisierungsdatenbank in wenigen Sekunden

RobotMan
quelle
Interaktive Beispielimplementierung: github.com/phil294/linux-locate-everything
phil294
2

Haben Sie Angry Search überprüft . Es behauptet in seiner Beschreibung, dass es genau wie Alles ist. Das behauptet auch FSearch .

Blue Ray
quelle
1
Angesichts der Anzahl der Suchergebnisse, die Sie bei der Suche nach Evernote-Alternativen für Linux auf FSearch verweisen, bin ich überrascht, dass Sie der einzige sind, der sie hier veröffentlicht hat.
Ghos3t
1

Es sollte möglich sein, so etwas mit inotify in ein paar Codezeilen zu erstellen (es gibt auch das inotify-tools-Paket, mit dem Sie dies mit Shell-Skripten implementieren können).

(Es würde mich sehr überraschen, wenn ein solches Tool aus dem Journal gestrichen würde - wahrscheinlicher ist es in der Ebene des virtuellen Dateisystems implementiert.)

symcbean
quelle
1
Ich bin mir nicht sicher, ob inotifydies nützlich sein könnte, da es nicht rekursiv ist. Das Erstellen von Überwachungen für den gesamten Baum ist einfach. Kann der Kernel jedoch viele Zehntausende von ihnen verarbeiten? Auch wenn es möglich ist, scheint mir dies kein effektiver Weg zu sein.
Maaartinus
1

btrfssetzt den find-newBefehl gegen Subvolumes seit Jahren um. Wenn Sie einen relativ aktuellen Snapshot-Baum haben, können Sie mit wenig Aufwand ein Dateisystem atomar auf alle Änderungen überwachen.

Sie würden es wie folgt verwenden:

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

Sie können die Gen-ID, die Sie zum Vergleichen benötigen, mit demselben Befehl abrufen, jedoch mit einer falschen Gen-ID. Hier gibt es mehr Infos .

mikeserv
quelle
1

Benutzeroberflächen-Front-End für den Befehl locate, der fast genauso funktioniert wie Everything:

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

Alex Tuduran
quelle
1
Dies scheint auf der falschen Voraussetzung zu beruhen, locatedie niemals automatisch aktualisiert wird.
Roaima
Bitte entwickeln Sie. Was meinen Sie damit, dass locate aktualisiert wird?
Alex Tuduran
Ihr GitHub-Projekt gibt an, dass der Unix-Befehl locatedasselbe Prinzip verwendet, außer dass die Datenbank nicht automatisch aktualisiert wird . Das locatePaket enthält eine cronAufgabe, die die Datenbank automatisch aktualisiert.
Roaima
Wenn das stimmt, hilft es nur dem Ziel des Tools. Durch die automatische Aktualisierung der Datenbank wird der Benutzer von einer anderen Aufgabe entlastet. Der Benutzer kann die Datenbank weiterhin explizit aktualisieren, wenn sofortige Aktualisierungen erforderlich sind. Oder worum geht es hier um die falsche Prämisse?
Alex Tuduran
1

Ich verwende Angry Search auf einem Raspberry Pi 3 B +, auf dem Stretch ausgeführt wird, und es funktioniert einwandfrei. Es ist wirklich ziemlich schnell, genau wie Search Everything unter Windows. Es ist sehr schön, Dateien so schnell finden zu können.

Lulu
quelle