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
   
Stichworte (tags)