Was ist der beste Weg, um mein Dateisystem auf Ubuntu mit sofortigen Ergebnissen zu durchsuchen?

7

Was ist der beste Weg, um mein Dateisystem auf Ubuntu zu durchsuchen und fast sofort Ergebnisse zu erhalten? Ich habe Wels , Tracker und das übliche Suchwerkzeug von Ubuntu verwendet.

Tracker findet nichts, Ubuntu-Suchwerkzeug ist zu langsam und Wels findet meistens nichts. Ich habe viele PDFs und DJVU-Dateien, auf die ich zugreifen möchte. In Windows gibt es ein Programm namens " Alles suchen" , das fast sofort Ergebnisse zurückgibt. Ich möchte ein ähnliches Linux-Tool.

Bitte geben Sie eine detaillierte Antwort wie möglich, da ich ein Neuling in Linux bin. Wenn ein solches Tool in Ubuntu nicht vorhanden ist, wie groß ist die Chance, dass ich ein solches Tool in einer anderen Linux-Distribution finde, z. B. mandriva, redhat?

Nabil
quelle
2
Siehe auch
Anwar

Antworten:

10

Recoll kann dies für Sie tun. Es bietet eine Volltextindizierung für fast jeden erdenklichen Dokumenttyp und eine Ergebnisübersicht, sortiert nach Seitenzahlen für PDF-Dokumente.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Sie können es über das Software-Center installieren (nach Recoll suchen ) oder die neue neueste Version über das Recoll-PPA erhalten (einschließlich eines Unity-Objektivs / Oszilloskops). Fügen Sie zuerst das offizielle Recoll-Repository hinzu:

sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
sudo apt-get update

Wenn Sie mit Ubuntu 13.04 und niedriger arbeiten, müssen Sie Folgendes installieren recoll-lens:

sudo apt-get install recoll recoll-lens

Für Ubuntu 13.10 und höher verwenden Sie unity-scope-recollstattdessen:

sudo apt-get install unity-scope-recoll

Wenn Sie zum ersten Mal von einer PPA installieren, lesen Sie diese zuerst:

Was sind PPAs und wie verwende ich sie?

Sind PPAs sicher, meinem System hinzuzufügen, und worauf sollten Sie bei einigen "roten Fahnen" achten?

Sie müssen Recoll mindestens einmal ausführen, um Ihren Suchindex zu erstellen, bevor Sie das Recoll-Objektiv / den Recoll-Bereich verwenden können.

Eine ausführlichere Dokumentation zur Verwendung von Recoll finden Sie hier .

Glutanimate
quelle
Danke, Glutanimate. Ich habe eine Erinnerung und es ist nutzlos. Ich möchte nicht, was in den Dokumenten enthalten ist. Ich möchte nur einen Teil des Dateinamens eingeben und erhalte das Ergebnis schnell. Alle Tools, die ich ausprobiert habe, liefern entweder überhaupt keine Ergebnisse oder können nur gelegentlich funktionieren. Catfish hat einmal gut funktioniert, aber nachdem ich meinen Computer neu gestartet und erneut versucht habe, gab es nichts zurück
Nabil
Aber das können Sie auch. Wählen Sie einfach den Dateityp aus dem Dropdown-Menü (das alle
Elemente
Ich habe das getan, aber es funktioniert immer noch nicht. Vielleicht, weil ich dem Programm nicht gesagt habe, wo es suchen soll? Durchsucht es die gesamte Festplatte?
Nabil
Sie müssen definieren, wo gesucht wird. Standardmäßig wird nur zu Hause gesucht. Weitere Informationen finden Sie in der Dokumentation.
Glutanimate
2
@BrianZ Danke für deinen Kommentar. Ab Ubuntu 13.10 müssen Sie anstelle eines Objektivs ein Zielfernrohr installieren. Ich habe meine Antwort entsprechend aktualisiert.
Glutanimate
4

Um nur nach Dateinamen zu suchen und Inhalte zu ignorieren
, können Sie das locateTool verwenden. Die Suche ist sehr schnell.

locate '*.pdf'

listet alle PDF-Dateien auf. Weitere Informationen finden Sie auf der Handbuchseite.

$ locate --help
Usage: locate [OPTION]... [PATTERN]...

Search for entries in a mlocate database.

  -b, --basename         match only the base name of path names
  -c, --count            only print number of found entries
  -d, --database DBPATH  use DBPATH instead of default database (which is
                         /var/lib/mlocate/mlocate.db)
  -e, --existing         only print entries for currently existing files
  -L, --follow           follow trailing symbolic links when checking file
                         existence (default)
  -h, --help             print this help
  -i, --ignore-case      ignore case distinctions when matching patterns
  -l, --limit, -n LIMIT  limit output (or counting) to LIMIT entries
  -m, --mmap             ignored, for backward compatibility
  -P, --nofollow, -H     don't follow trailing symbolic links when checking file
                         existence
  -0, --null             separate entries with NUL on output
  -S, --statistics       don't search for entries, print statistics about each
                         used database
  -q, --quiet            report no error messages about reading databases
  -r, --regexp REGEXP    search for basic regexp REGEXP instead of patterns
      --regex            patterns are extended regexps
  -s, --stdio            ignored, for backward compatibility
  -V, --version          print version information
  -w, --wholename        match whole path name (default)
Anwar
quelle
Beachten Sie, dass Sie zum Aktualisieren des Index Folgendes ausführen müssen: sudo updatedb Eine leistungsstarke Funktion ist auch, dass Sie Ihren Index in einer Datei speichern und dann mit locate <filename> -d <DBPATH>hervorragender Option verwenden können, wenn Sie lokal indizierte Festplatten behalten möchten, aber nicht immer verbunden sind
Diego Andrés Díaz Espinoza
1

Ich suche auch viel in sehr großen PDF-Bibliotheken. Für mich ist dies die größte Frustration unter Linux, die mich dazu bringt, MS Windows zu vermissen. Ich habe zu diesem Zeitpunkt alles versucht, und die Lösung, für die ich mich jetzt entschieden habe, besteht darin, die folgenden Programme in Kombination zu verwenden.

Leider scheint sich derzeit keines davon in den Ubuntu-Repositories zu befinden und ist möglicherweise instabil. Wenn Recoll (jetzt im Standard-Repository für Ubuntu 14.04, glaube ich?) Oder etwas anderes für Sie funktioniert, sollten Sie sich besser daran halten.

1) Synapse

Installation: Lesen Sie diesen Beitrag für Details, aber im Grunde können Sie ihn installieren, indem Sie die folgenden Befehle in einem Terminal ausführen.

sudo apt-add-repository ppa:synapse-core/testing
sudo apt-get update
sudo apt-get install synapse

Positiv

  • Sehr schnelle, intelligente Suchergebnisse
  • Wenn das, was Sie möchten, nicht sofort angezeigt wird, können Sie mit "Suchen" nach unten und nach unten klicken, um weitere Informationen zu erhalten.

Negativ

  • Sucht nur nach Dateinamen, nicht nach Text.
  • Scheint viel zu vermissen, besonders bevor Sie versuchen "lokalisieren".

2) Launchy

Installation: Laden Sie das Paket hier herunter .

Positiv:

  • Fast so schnell wie Synapse
  • Die Ergebnisse sind sehr umfassend.

Negativ:

  • Sucht auch nur nach Dateinamen.
  • Wahrscheinlich der fehlerhafteste dieser drei.

3) DocFetcher

Installation: Wenn Sie es nicht irgendwo in einem Repository finden, bleiben Sie bei der portablen Version. Laden Sie es hier herunter und folgen Sie den Anweisungen.

Positiv:

  • Sucht im Text Ihrer PDFs
  • Umfassende, aber relevante Ergebnisse in logischer Reihenfolge (normalerweise finde ich die Ergebnisse in Recoll oder Tracker im Vergleich völlig verrückt)
  • Vollständiger Dokumentvorschaubereich, damit Sie mehr von der Datei sehen können, bevor Sie sie öffnen (nicht nur ein paar Zeilen)
  • Ziemlich schnell

Negativ:

  • Schwer zu installieren und nativ in Ubuntu auszuführen (zB ohne Java-Laufzeit)
  • Viel langsamer als die Apps, die nur nach Dateinamen suchen

Hoffentlich wird Dash aufholen und all dies überflüssig machen, aber in der Zwischenzeit sind diese drei meistens das, was ich benutze.

Andere Optionen sind vielleicht einen Versuch wert:

  • Gnome-Do ist vielleicht eine würdige Alternative zu Synapse, aber zuletzt habe ich überprüft, dass es nur 5000 Dateien indizieren kann, und das reicht mir nicht
  • pdfgrep ist manchmal nützlich, aber langsam und hat keine mir bekannte GUI
Brian Z.
quelle
3
Sehr umfassende Antwort, +1. Mein einziger Vorschlag wäre, Recoll noch einmal zu versuchen. Von allen Lösungen ist es bei weitem die am besten konfigurierbare. Und obwohl es einige Zeit dauern kann, um Ihre spezifischen Anforderungen und Anwendungsfälle zu erfüllen, kann ich nur sagen, dass sich die Mühe sehr lohnt. Zum Glück ist die Dokumentation ist sehr gut und vollständig.
Glutanimate
1
Außerdem interessieren Sie sich eher für eine leichtgewichtige Lösung, die Dokumente eher anhand ihres Dateinamens als anhand ihres Inhalts abruft. Ich habe vor einigen Wochen ein neues Projekt gesehen, das möglicherweise in die Rechnung passt. Es heißt PyNeedle und verwendet den leistungsstarken Indexer von Recoll als Backend. Ich habe es noch nicht ausprobiert, aber es könnte eine gute Alternative für Ihren speziellen Anwendungsfall sein.
Glutanimate
@ Glutanimate Danke ... Jetzt, wo ich das Recoll-Objektiv seit gestern in Dash habe, benutze ich es ziemlich oft. Ich werde auf jeden Fall Ihre Vorschläge prüfen.
Brian Z
0

Geben Sie hier die Bildbeschreibung einSie können auch das Gnome-Suchwerkzeug verwenden. Sie können es durch bekommensudo apt-get install gnome-search-tool

rɑːdʒɑ
quelle
Ja, lassen Sie uns wissen, ob es Ihren Anforderungen entspricht oder nicht. : D
rɑːdʒɑ
Der Download ist abgeschlossen, aber wie kann ich ihn verwenden?
Nabil
Öffnen Sie Ihren Unity Dash und geben Sie als Gnome-Suchwerkzeug ein. Es wird geöffnet, mit was und wo Sie die Suche durchführen möchten. schau dir das Bild an.
rɑːdʒɑ
Sie können viele Optionen haben, wenn Sie sich für Weitere Optionen
auswählen entscheiden
1
Cool, es funktioniert auch nicht
Nabil
0

Der folgende Python-Code gibt sehr schnell Suchergebnisse zurück. Ändern Sie einfach den zweiten Parameter in das fnmatch.fnmatch(file,'*.txt), was Sie suchen. Es ist unglaublich schnell.

import fnmatch
import os

for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.txt'):
        print file
noel
quelle
0

Eine weitere Option ist Synapse.
Integriert Zeitgeist-Ergebnisse.
Ich habe viele Dokumente auf meinem System und war überrascht, wie schnell Synapse die benötigten Dateien finden konnte.

sudo apt-get install synapse

Prost

DrewG
quelle
1
Der Unity-Dash verwendet auch Zeitgeist und scheint für das OP zu langsam zu sein.
LiveWireBT
0

Für eine Kommandozeilenoption ist "Silver Searcher" meiner Meinung nach einfach das Beste. Weitaus schneller als findund awkund einfacher zu bedienen:

ag <path>

Installieren Sie von Ubuntu 14.04

sudo apt-get install silversearcher-ag

Schauen Sie sich einige Geschwindigkeitsvergleiche gegen findund anawk

https://github.com/ggreer/the_silver_searcher

Diego Andrés Díaz Espinoza
quelle