Linux: find
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