Bash Tutorial 13 – “find”-Befehl

Was ist find? 

Der Befehl find ist ein leistungsstarkes Werkzeug in der Bash-Shell, mit dem du Dateien und Verzeichnisse anhand bestimmter Kriterien suchen kannst – rekursiv und flexibel. Du kannst nach Namen, Typen, Größen, Änderungsdaten und vielem mehr filtern und sogar Aktionen auf die gefundenen Dateien ausführen. 


📌 Grundsyntax 

find [Pfad] [Suchkriterien] [Aktionen]  
  • Pfad: Startverzeichnis der Suche (z. B. . für das aktuelle Verzeichnis) 
  • Suchkriterien: Bedingungen wie -name, -type, -size, -mtime usw. 
  • Aktionen: Was mit den gefundenen Dateien geschehen soll, z. B. -print, -exec, -delete 

🧪 Praktische Beispiele 

🔹 1. Suche nach Dateinamen 

find . -name "bericht.txt"  

Sucht nach einer Datei namens bericht.txt im aktuellen Verzeichnis und allen Unterverzeichnissen. 

🔹 2. Suche nach Dateityp 

find /var/log -type f  

Listet alle regulären Dateien (-type f) im Verzeichnis /var/log. 

🔹 3. Suche nach Dateigröße 

find . -size +10M  

Findet Dateien, die größer als 10 Megabyte sind. 

🔹 4. Suche nach Änderungsdatum 

find . -mtime -7  

Findet Dateien, die in den letzten 7 Tagen geändert wurden. 

🔹 5. Suche und Aktion mit -exec 

find . -name "*.log" -exec rm {} \;  

Findet alle .log-Dateien und löscht sie. 

🔹 6. Leere Dateien löschen 

find . -type f -empty -delete  

Löscht alle leeren Dateien im aktuellen Verzeichnisbaum. 


🧩 Nützliche Optionen 

Option Beschreibung 
-name Sucht nach Dateinamen (z. B. -name “*.txt”) 
-iname Wie -name, aber ohne Beachtung der Groß-/Kleinschreibung 
-type Filtert nach Dateityp (f=Datei, d=Verzeichnis, l=Symlink etc.) 
-size Sucht nach Dateigröße (+100k, -1M) 
-mtime Sucht nach Änderungsdatum (z. B. -mtime -3 für letzte 3 Tage) 
-exec Führt einen Befehl auf den gefundenen Dateien aus 
-delete Löscht die gefundenen Dateien direkt 
-maxdepth Begrenzung der Verzeichnistiefe 
-mindepth Mindesttiefe der Suche 

⚠️  Tipps & Hinweise 

  • Verwende -print am Ende, um die Ergebnisse explizit auszugeben (wird oft automatisch gemacht). 
  • Bei vielen Dateien ist -exec langsam – nutze stattdessen xargs: 
find . -name "*.log" | xargs rm  

🧠 Übungsidee 

Versuche, alle .jpg-Dateien zu finden, die älter als 30 Tage sind und mehr als 5 MB haben – und verschiebe sie in ein Archivverzeichnis: 

find ~/Bilder -name "*.jpg" -size +5M -mtime +30 -exec mv {} ~/Archiv \; 

© 2025 MaDe-Online