updated: | 2025 27. February |
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 und Zeit
#a) Dateien die in den letzten 10 Minuten geändert wurden
find ./ -mmin -10
#b) größer als 500 Mebibyte = 524,288 Megabyte
find ./ -size +500M -print
#c) kleine als 100 Byte
find ./ -size -100c -print
#d) Kombination c) und a)
find . -size -100c -and -mmin -2 -print
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