Mit dem Befehl find ist es möglich unter Berücksichtigung verschiedener Optionen Dateien über die sogenannte comandline (=Komandozeile ohne Grafik) zu suchen. Eine umfassende Information zu dem Befehl find, kann man bei Benutzung des Betriebssystems Debian/Linux auch mit dem Befehl: "man find" bekommen. Damit wird die sogenannte manpage oder manual-page zum jeweiligen Befehl geöffnet.
Suche nach einem bestimmten Wort
Wenn wir beispielsweise das Wort Ball suchen, jedoch nicht wissen, in welchem Verzeichnis es sich befindet, lautet der Befehl dafür:
find / -name Ball
Das Ergebnis listet uns dann alle Verzeichnisse, in denen eine Datei mit dem Namen Ball vorkommt. Mit der Option -name wird hier ein konkreter Name einer Datei festgelegt, in diesem Beispiel kann es sich um ein Verzeichnis oder ein File handeln.
Suche, ausgehend vom aktuellen Verzeichnis
Wenn wir von der Datei, die wir suchen, wissen, dass sie sich unterhalb unseres aktuellen Verzeichnisses befindet, lautet der Befehl hierzu:
find . -name Ball
Die Suche startet dann in dem Verzeichnis, in dem wir uns aktuell befinden, und durchsucht davon ausgehend alle Verzeichnisse, die sich hierunter befinden.
Suche nach einem bestimmten Muster im Dateiennamen
find . -type f -name '*~'
Mit Angabe von * kann man nach verschiedenen Zeichen suchen. In unserem oberen Beispiel sucht find nach allen Dateien welche ein Tilde im Dateiennamen haben.
Suche nach einer Datei, mit bestimmter Größe
Unter Linux kommt es auch immer wieder vor, dass man Dateien sucht, die eine bestimmte Größe hat, oder noch größer ist, der Befehl hierzu müsste dann heissen:
find / -type f -size +3000k
Über die Option -size wird dadurch die gewünschte Größe definiert, in diesem Beispiel werden Alle Dateien ausgegeben, die über 3000 Kilobit groß sind.
Eine Datei mit bestimmter Zugriffszeit suchen
Wer viel mit Linux/Debian arbeiten sucht auch des öfteren nach einer Datei, die zu einem bestimmten Zeitpunkt geöffnet wurde, um sie zu verändern, oder sie zu lesen. Wenn wir nach einer Datei suchen, die vor mehr als 4 Tagen geändert wurden, oder vor mehr als 30 Tagen das letzte mal angefasst wurden, lautet der Befehl wie folgt:
find / ( -mtime +4 -o -atime +30 )
In diesem Beispiel bedeutet die Option -mtime den Zeitpunkt der letzten Manipulation einer Datei, die Option -atime den Zeitpunkt des letzten Dateizugriffes ohne dass eine Änderung vorgenommen wurde.
Suche nach Verzeichnissen
Wenn wir zum Beispiel im Verzeichnis /home/user alle Verzeichnisse suchen wollen, dann msste der Befehl hierzu wie folgt lauten:
find /home/user -type d
Über die Option -type kann der Dateityp definiert werden, so handelt es sich bei -type f um ein File, bei -type d um ein Verzeichnis.
Mehrere Verzeichnisse durchsuchen
Mit dem Befehl find ist es auch möglich gezielt mehrere Verzeichnisse zu durchsuchen, der Befehl dazu lautet dann wie folgt:
find /home/user /etc/ /home/wgerum -name meine_datei
Darüber hinaus gibt es für den Befehl find eine Vielzahl weiterer Optionen, auch kann man den Befehl find eine Reihe weiterer Befehle verbinden wie zum Beispiel Umleitung der Ausgabe des Befehles find in eine Datei, und vieles mehr.
Verzeichnis nach Textdateien durchsuchen und packen
Sie können mit dem nachfolgenden Befehle alle Text-Dateien in ein Verzeichnis suchen, die älter als drei Jahre sind und diese werden dann gleich in ein .tar.gz Archive gepackt:
find . -name '*.txt' -mtime +1095 -print | tar -czf archiv.tar.gz --files-from -
mit dem Befehl:
find . -name '*.txt' -mtime +1095 -delete
löschen Sie abschließen die Dateien im Verzeichnis, wo Sie sich befinden.