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

