Firmenbrief

17.06.2008

Dateien suchen mit Linux


In den meisten Fällen wollen Sie Dokumente schnell zur Hand haben. Ungünstig ist es dann, wenn Sie nicht mehr wissen wo Sie die Datei abgespeichert haben. Das Microsoft-Betriebssystem Windows hat eine integrierte Suchfunktion, ähnliches gibt es unter KDE . Den Nutzern der textbasierten Konsole möchten wir heute als Alternative unter Linux die nützlichen Hilfsprogramme 'find' und 'locate' vorstellen.

'Find' ist ein kleines, mächtiges Open-Source-Tool. Wenn Sie wissen wollen, was Ihnen 'find' alles bietet, können Sie auch hierfür wieder die Manpages nutzen, die wir Ihnen in den vergangen Linux-Firmenbriefen bereits vorgestellt hatten. Nutzen Sie das integrierte Linux-Nachschlagewerk mit dem Kommando "man find". Auf der Suche nach Dokumenten durchsucht das Programm eine oder mehrere Verzeichnishierarchien nach Dateien mit bestimmten Eigenschaften, und führt damit von Ihnen bestimmte Aktionen aus. Die Eigenschaften können Sie durch Tests bestimmen. Wenn Sie den genauen Dateinamen Ihrer gesuchten Datei kennen, können Sie ganz einfach mit "find -name (+ Dateinamen)" suchen. Wenn Sie den Dateinamen nicht mehr genau wissen, können Sie auch mittels so genannter Wildcards , sprich: Platzhaltern, suchen, beispielsweise mit "find -name '*(+ Wortteil des Dateinamens)*' ". Allerdings nimmt die Suche auch etwas Zeit in Anspruch, da 'find' die komplette Verzeichnishierarchie durchsucht.

Schneller suchen Sie mit 'locate'. Dieses Tool sucht nicht wie 'find' direkt im System, sondern in einer Art Datenbank. Diese wird mit 'updatedb' im Verzeichnis unter /var/lib/locatedb erstellt bzw. aktualisiert. Diese Datenbank können Sie nur mit einer Root -Berechtigung erstellen bzw. aktualisieren, denn 'updatedb' muss unter Umständen auch auf Verzeichnisse zugreifen, für die normale Anwender keine Leserechte haben. Die Dateisuche mit 'locate' können Sie auch als Anwender nutzen. Wenn Sie den genauen Dateinamen wissen, suchen Sie mit dem Befehl 'locate '. Falls nicht, können Sie auch hier wieder Platzhalter nutzen. Das Kommando sieht dann beispielsweise so aus: 'locate **'.