ADMIN-Tipp: Find-Tutorial (1)

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Mit dem Find-Befehl lassen sich Dateien und Verzeichnisse auf einem Unix-System suchen. Dieser ADMIN-Tipp stellt die wichtigsten Optionen dieses leistungsfähigen Kommandos vor.

Vorab ein Wort zur Warnung: Find ist nicht gleich Find. Während unter Linux das Find-Programm der GNU-Findutils zu ... nunja, finden ist, werden Anwender von BSD und Mac OS X mit der BSD-Variante des Programms konfrontiert. Der augenfälligsten Unterschied liegt darin, dass das BSD-Find den zu durchsuchenden Pfad obligatorisch voraussetzt, während er beim GNU-Tool optional ist. Wer sich eben mal schnell alle Dateien und Verzeichnisse anzeigen möchte, kann das bei Linux mit bloßem "find" tun, BSD-Anwender müssen mindestens "find ." eingeben. Den Suchpfad anzugeben, schadet aber auch bei Linux nicht.

Will man nach einem bestimmten Datei- oder Verzeichnisnamen suchen, hilft "find Pfad -name Name " weiter. Will man an mehreren Stellen suchen, etwa nach einer bestimmten Konfigurationsdatei, verarbeitet Find auch mehrere Pfade an Stelle des einen:

find /etc /usr/local/etc apache.conf

In diesem Fall sucht Find nur nach dem genauen Dateinamen. Für eine fehlertolerante Suche lassen sich die Shell-Globbing-Symbole verwenden, so das bekannte Wildcard-Sternchen für einen unbekannten Teilstring. Der folgende Find-Aufruf sucht somit alle Dateien und Verzeichnisse, die "apache" im Namen tragen:

find /etc -name "*apache*"

Im Gegensatz zur Shell findet Find hierbei auch die mit einem Punkt beginnenden Dotfiles. Um unabhängig von der Groß- und Kleinschreibung zu suchen, gibt es den Ausdruck "-iname", bei dem das I für "Ignore Case" steht. 

Etwas komplizierter ist es, Dateien mit einem bestimmten Änderungsdatum zu finden. Hierzu bietet Find die Ausdrücke "-mtime" und "-mmin" an. Die erste Variante erwartet als Zeitangabe ganze Tage, wobei die Zählung bei 0 beginnt. "find -mtime 0" sucht also alle Dateien, genau heute, also innerhalb der letzten 24 Stunden geändert wurden. Das Vorzeichen bei der Zeitangabe steht für "mindestens" beziehungsweise "mehr als". "find -mtime -2" gibt alle Dateien aus, deren Änderungszeit weniger als 48 Stunden in der Vergangenheit liegt, "find mtime 2" dagegen diejenigen, die vor mehr als zwei Tagen geändert wurden. Analog funktioniert der Aufruf von "-mmin", nur eben mit Minuten. Mit "-ctime" und "-atime" kann Find auch nach der Änderung der Dateirechte und des letzten Zugriffs suchen (im letzten Fall vorausgesetzt, das Dateisystem wurde nicht mit "noatime" gemountet)

Find kann die Suchoptionen kombinieren, mit "-perm" nach Permissions suchen, mit "-user" und "-group" nach Benutzer und Gruppen suchen, mit der Option "-exec" direkt Befehle auf das Suchergebnis anwenden oder sie über eine Pipe an andere Kommandozeilen-Tools weitergeben. Das alles wird Thema weiterer Folgen des Find-Tutorials sein. 

08.05.2012

Ähnliche Artikel

  • ADMIN-Tipp: Find-Tutorial (2)

    Nachdem der erste Teil des Find-Tutorial die Basics des Programms erklärt hat, soll es dieses Mal darum gehen, wie man die gefundenen Dateien weiterverarbeiten kann.

  • ADMIN-Tipp: Schneller suchen als find

    Unter Linux ist find das bewährte Tool für eine Suche nach Dateien. Es kann flexibel mit regulären Ausdrücken und verschiedenen Suchtiefen umgehen oder eine Datumsrechnung einbeziehen. Allerdings hat es einen Nachteil: Speziell bei großen Volumes ist es prinzipbedingt sehr zeitintensiv, da es immer alle Files im Dateisystem aufsuchen und vergleichen muss.

  • ADMIN-Tipp: Suchen in Texten

    Wenn man zu viel findet kommt man auch nicht weiter. Das kennt man aus dem Internet aber auch vom Unix-Kommando find . Dieser ADMIN-Tipp stellt einen doppelten Filter vor, der den anfallenden Datenmüll reduzieren kann.

  • ADMIN-Tipp: Ack, das bessere Grep

    Ein kleines Tool namens Ack schickt sich an das gute alte Grep bei der Suche in Textdateien abzulösen.

  • ADMIN-Tipp: Suchen und Ersetzen in vielen Dateien

    Lang, lang ist's her, da gehörte Perl zum unverzichtbaren Werkzeug eines jeden Unix-Administrators. Viele kleine Aufgaben lassen sich damit immer noch am schnellsten erledigen.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023