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?
filesystems
search
journaling
maaartinus
quelle
quelle
Antworten:
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
(und
xrdb -load ~/.Xdefaults
danach ausführen )quelle
rlocate
selbst macht schon eine komplette antwort.Show in File Manager
20-mal tun../configure
, muss ich "das Paket mit den vollständigen Kernel-Quellen installieren". Dieses Tool scheint für Nicht-Gurus unerreichbar zu sein.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!
quelle
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.
quelle
Sie können den
locate
Befehl verwenden und, wenn Sie die Datenbank aktualisieren möchten, den folgenden Befehl ausführen:Dieser Befehl aktualisiert die Lokalisierungsdatenbank in wenigen Sekunden
quelle
Haben Sie Angry Search überprüft . Es behauptet in seiner Beschreibung, dass es genau wie Alles ist. Das behauptet auch FSearch .
quelle
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.)
quelle
inotify
dies 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.Vielleicht möchten Sie es mit Beagle versuchen . Leider ist http://www.beagle-project.org jetzt als Domain geparkt - wikipedia.
quelle
btrfs
setzt denfind-new
Befehl 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:
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 .
quelle
Benutzeroberflächen-Front-End für den Befehl locate, der fast genauso funktioniert wie Everything:
https://github.com/AlexTuduran/Locator/releases
quelle
locate
die niemals automatisch aktualisiert wird.locate
dasselbe Prinzip verwendet, außer dass die Datenbank nicht automatisch aktualisiert wird . Daslocate
Paket enthält einecron
Aufgabe, die die Datenbank automatisch aktualisiert.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.
quelle