Datum: 2003-03-11
Quelle: suse-linux
Das Kommando rm -r ist in der Lage, Dateien und Verzeichnisse rekursiv zu löschen. Manchmal kann man dies aber nicht so ohne weiteres - sei es, dass man bestimmte Dateien davon ausnehmen will, vorher von einigen Dateien ein Backup anfertigen will ... Neben find kann man sowas natürlich auch in der Shell realisieren.
# function recursion { cd "$1" for i in * .[^.]* ..?*; do if test -d "$i"; then recursion "$i" cd "$1" rmdir -- "$i" elif test -e "$i"; then rm -- "$i" fi done } # main recursion .
Zuerst wird eine Funktion rekursion definiert, die sich für jeden Verzeichniseintrag im aktuellen Verzeichnis selbst rekursiv aufruft und ansonsten die Datei löscht. Das Script ist ein Template, innerhalb von rekursion können natürlich beliebige Kommandos ausgeführt werden. Gestartet wird die Verarbeitung durch den Aufruf der Funktion mit dem Startverzeichnis als Parameter.