Home / LinuxUser / 2006 / 09 / Suchen im Dateisystem

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Transparente Heuhaufen

Suchen im Dateisystem

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zum Autor

Martin Steigerwald

Martin Steigerwald

Martin Steigerwald arbeitet als Trainer, Consultant und Systemadministrator bei der team(ix) GmbH in Nürnberg. Schwerpunkte seiner Tätigkeit sind Linux-Schulungen, die Konzeption, Installation und Wartung solider IT-Infrastruktur auf Basis von Debian Linux sowie Second Level Support für Linux als Business-Desktop bei Kunden von teamix(ix).


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...