| updated: | 2025 31. October |
| published: | 2024 09. April |
find
Dateien und Verzeichnisse suchen.find ist ein mächtiges Werkzeug zum Suchen von Dateien und Verzeichnissen. Im folgenden ein paar Beispiele.
Doppelte Dateien suchen
Aus dem Debian Anwenderhandbuch ist folgende praktische Codezeile.
find . -exec md5sum {} 2>/dev/null \; | sort | uniq -w 32 -D > doppelte.asc
Suchen nach Dateigröße
# Datei(n) größer als 500 Mebibyte = 524,288 Megabyte
find ./ -size +500M -print
# kleiner als 100 Byte
find ./ -size -100c -print
# Kombination aus kleiner als 100 Byte und geändert in den letzten 2 Minuten
find . -size -100c -and -mmin -2 -print
Suchen nach Zeit
# in den letzten 10 Minuten geändert
find ./ -mmin -10
# innerhalb des letzten Tages geändert
find ./ -iname "*.txt" -mtime -1 -ls
Verzeichnisse auslassen
#a) Verzeichnisse Programm\* und .wine\* ausschließen
find ./ \( -type d -path ./.wine\* -o -path ./Programm\* \) -prune -o -iname "*.asc" -print
#b) wie a) mit egrep-Variante
find ./ -iname "*.asc" | egrep -v "./.wine*|./Programm*"
#c) wie a) mit zwei Suchmustern
find ./ \( -type d -path ./.wine\* -o -path ./Programm\* \) -prune -o \( -iname "*.png" -o -iname "*.asc" \) -print
#d) Suche bis Verzeichnistiefe
find ./ -maxdepth 2 -iname "*.asc" -print
#d) Suche ab Verzeichnistiefe 8 (=9-1)
find ./ -mindepth 9 -iname "*.asc" -print
Leerzeichen in Datei- und Verzeichnissnamen finden
find ./ -type d -iname '\* *' -print # -type d für Verzeichnis
find ./ -type f -iname '\* *' -print # -type f für Datei
exec - das Ergebnis weiter verarbeiten
find ./ -iname '*' -exec file {} \; # Filetype out
find ./ -iname '*.txt' -exec cp {} /temp/ \; # copy to /temp
find ./ -iname '*' -mtime -1 -exec ls -la {} \; # Auflisten aller geänderten Dateien des letzten Tages
Top 10 der größten Dateien in menschenlesbarem Format anzeigen
find . -type f -exec stat --format="%s %n" {} + | sort -nr | head -n 10 | numfmt --to=iec --field=1