Linux: find

20. November 2023

Der find Befehl in Linux wird verwendet, um Dateien und Verzeichnisse basierend auf verschiedenen Kriterien zu suchen. Nachfolgend einige Beispiele.

Suche nach Dateien

im aktuellen Verzeichnis

find . -type f

mit einem bestimmten Präfix

find . -type f -name "prefix*"

mit einem Präfix ohne Prüfung auf Groß-/Kleinschreibung

find . -type f -iname "prefix*"

oder

find . -type f -iname "*.txt" -or -iname "*.sh"

mit einer bestimmten Dateiendung

find . -type f -name "*.txt"

die in den letzten 24h geändert wurden

find . -type f -mtime -1

die in den letzten 24h erstellt wurden

find . -type f -ctime -1

die größer als eine bestimmte Größe sind

find . -type f -size +1M

mit Schreibrechten für user sind

find . -type f -perm /u=w

die einen bestimmten Text enthalten

find . -type f -exec grep -l "suchtext" {} \;

die einem bestimmten User gehören

find . -type f -user username

in einem bestimmten Verzeichnis

find /path/xyz -maxdepth 1 -type f

Aktionen auslösen

Datei löschen

find . -type f -name "*.js" -delete

Einen Command ausführen (pendant zum vorherigen Befehl)

find . -type f -name "*.js" -exec rm {} \;

Die {} werden durch den gefundenen Dateinamen ersetzt. Backslash + Semikolon müssen am Ende stehen.

Suche nach Verzeichnissen

im aktuellen Verzeichnis

find . -type d

nach leeren Verzeichnissen

find . -type d -empty