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.