Finden in Sekunden

Nachteil von Find ist die mitunter lange Suchzeit. Für eine schnelle Suche eignet sich der Befehl Locate besser, da er auf einen Index zurückgreift. Diesen Index erstellt das Programm Updatedb mit Hilfe des Befehls Find. Der Index enthält nur Dateinamen inklusive Pfade. Nach etwas anderen können Sie nicht suchen.

Ein Cron-Job sorgt für die regelmäßige Aktualisierung des Indexes [9]. Führen Sie als Root den Befehl updatedb aus, wenn Sie den Index manuell aktualisieren möchten. Cron verwirft Jobs komplett, wenn der Computer zu dem angegebenen Zeitpunkt nicht eingeschaltet ist. Das Programm Anacron dagegen führt den Job so bald wie möglich aus, wenn sich der Computer wieder in Betrieb befindet.

Der Befehl Locate versteht die gleichen Platzhalter wie Find, findet jedoch auch ohne diese Teilbereiche des Pfadnamens. Der Befehl locate README findet also die selben Dateien wie der Befehl locate *README*. Mit der Option -i suchen Sie unabhängig von Groß- und Kleinschreibung, mit -r anhand eines regulären Ausdrucks.

Der Befehl Locate beachtet bei der Anzeige des Ergebnisses die Zugriffsrechte nicht. Das wirft Probleme auf, wenn Updatedb die Indexdatenbank wie üblich mit vollen Root-Rechten erstellt. Ein regulärer Benutzer findet dann Dateien, die nur einen anderen Benutzer des Systems oder den Root-Benutzer etwas angehen. Auch wenn der Zugriff auf eine solche Datei verwehrt bleibt, weiß er zumindest von deren Existenz.

Dieses Problem umgeht Secure Locate (Slocate) [10], das nur Dateien anzeigt, die der Benutzer auch sehen darf. Der Befehl verwendet dabei einen eigenen Index, den Sie mit slocate -u oder wie gehabt mit updatedb aktualisieren. Für Debian gibt es ein Paket (slocate), während Suse-Anwender nicht umhin kommen, das Programm selbst zu kompilieren.

Die Suchbefehle Find und Locate zeigen Suchergebnisse an, wie sie kommen, anstatt sie alphabetisch zu sortieren. Leiten Sie die Ausgabe des Suchbefehls, wie in find -name *.txt | sort, an Sort weiter, um eine sortierte Ausgabe zu erhalten.

Abbildung 1: Der Befehl Locate auf der Suche nach Liesmich-Dateien in /usr/share/doc.

Neben Find und Locate gibt es mit Which und Whereis noch zwei spezialisierte Suchprogramme, die nur in vorgegebenen Pfaden suchen. So ermittelt Which den Aufenthaltsort einer ausführbaren Datei im Suchpfad ($PATH), während Whereis zusätzlich nach Manpages und Quelltexten fahndet.

Textrecherche

Mit Grep suchen Sie im Inhalt einer Datei. So sucht grep "Beispiel" artikel.html in der Datei artikel.html nach dem Begriff Beispiel. Mit der Option -i sucht grep unabhängig von Groß- und Kleinbuchstaben.

Wie Find und Locate unterstützt Grep Dateimuster. Mit grep "Beispiel" * suchen Sie in allen Dateien des aktuellen Verzeichnisses nach dem Begriff Beispiel und mit -r schalten Sie die rekursive Suche ein.

Nach Mustern suchen Sie mit Hilfe eines regulären Ausdrucks. So findet grep "B.*n" städte.txt in der Datei städte.txt sowohl Bonn als auch Berlin. Die Buchstaben B und n nimmt Grep dabei, wie sie sind. Der Punkt hingegen steht für ein beliebiges Zeichen und das Sternchen gibt an, dass ein solches keinmal oder beliebig oft vorkommen darf.

Der Befehl Grep kommt oft im Duo mit anderen Befehlen zum Einsatz. So schauen Sie mit dpkg -l | grep Paketname oder rpm -qa | grep Paketname, ob ein bestimmtes Debian- oder RPM-Paket installiert ist. Mit grep "Ausdruck" probieren Sie einen regulären Ausdruck interaktiv aus. Wie viele andere Befehle verwendet Grep die Standardeingabe, wenn Sie keine Datei angeben. Versuchen Sie es mit grep "B.*n" und geben Sie die Städtenamen Berlin, Bonn und Frankfurt ein.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Spürnasen
    Für jeden Zweck das Richtige: Die Suchwerkzeuge find und locate arbeiten Hand in Hand, which und whereis helfen bei besonderen Aufgaben.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Coole Tools schnelle Tipper
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 2 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...