find ist der Linux-/Unix-Befehl, um Dateien und Verzeichnisse nach Name, Typ, Größe, Zeitstempel und Rechten im gesamten Dateisystem zu suchen — viel flexibler als die reine Namenssuche.
Grundlagen
find /var/log -name "*.log" # nach Name mit Wildcard
find . -type f -name "*.conf" # nur Dateien (nicht Verzeichnisse)
find . -type d -name "backup" # nur Verzeichnisse
Nach Größe und Zeit suchen
find /home -size +100M # größer als 100 MB
find . -mtime -7 # in den letzten 7 Tagen geändert
find . -mmin -60 # in der letzten Stunde geändert
Aktionen und Kombinationen
find . -name "*.tmp" -delete # gefundene Dateien löschen
find . -name "*.log" -exec grep -l "ERROR" {} ;
find . -type f | xargs wc -l # Zeilen aller Dateien zählen
Praxis-Tipps
-nameist Groß-/Kleinschreibung-sensitiv,-inameignoriert sie.- Mit
-maxdepth 2die Suche auf zwei Ebenen begrenzen — spart enorm Zeit. - Vor
-deleteimmer erst ohne Option suchen und die Trefferliste prüfen. find . -type f -name "*.tmp" -exec rm {} ;leistet dasselbe wie-delete, ist aber portabler.
Verwandte Grundlagen: grep-Befehle, Bash-Befehle und sed-Befehle.