find -name Datei
sucht nach der Datei
find . -name bild.jpg
sucht nach bild.jpg. Der Punkt weist find an, alle Ordner ab dem aktuellen Verzeichnis zu durchsuchen.
find /mnt/cdrom/bilder -name bild.jpg
Dieser Befehl durchsucht das Verzeichnis bilder einer nach /mnt/cdrom gemounteten CD.
Weiß man nicht mehr, ob die Datei groß oder kleingeschrieben war hilft iname: find . -iname holmes.jpg
Mit Wildcards: find . -name "blo*"
Große Dateien: find . -size +1000k
zeigt alles an, was größer als 1000 KB ist. Lässt man das Pluszeichen weg, sucht find nach Dateien mit genau der angegebenen Größe, mit einem Minuszeichen (zum Beispiel -50k) setzt man einen Maximalwert.
Zeit: -mtime („modification time“=Änderungszeit). find . -mtime 0
präsentiert alles, was sich in den letzten 24 Stunden geändert hat, -mtime 2
die geänderten Dateien der letzten zwei Tage.
find . -mmin -5
findet alle Dateien, die in den letzten 5 Minuten geändert wurden.
Nur Verzeichnisse oder nur Dateien anzeigen? Mit -type beschränkt man die Suche auf bestimmte Typen: find . -type d
für Verzeichnisse („directory“), f für Dateien („file“) oder l für symbolische Links.
find . -name "*.txt" -exec less "{}" ";"
über gibt alle gefundenen Dateien an less zur Anzeige
find -name "*.jpeg" -print0 -exec cp \{\} /home/user/temp/ \;
sucht alle Dateien mit der Endung jpeg und kopiert diese in das Verzeichnis temp
find -name ".*" -exec rm -rf "{}" \;
löscht rekursiv alle versteckten Dateien – Achtung: Dieser Befehl ist sehr gefährlich, die Dateien können nicht wiedergeholt werden!
find . -size +100M -exec ls -lh '{}' \;
sucht Dateien größer 100MB
tree -ifs --noreport .|sort -n -k2
alle Dateien der Größe nach aufsteigend
Will man sehr viele Dateien zu verarbeiten, verwendet man eine For-Schleife:
for file in $(find "*.bak"); do rm $file done
In Dateien suchen, wenn man „grep“ mit dem Schalter „-H“ aufruft:
find . -name "*.txt" -exec grep -H "suchbegriff" {} \;