11 Mar
2003
11 Mar
'03
20:11
Moin, On Mon, 10 Mär 2003 at 22:19 (+0100), Sebastian Helms wrote: > * Jan Trippler schrieb am 10 Mar 2003: [...] > > BTW: Diese *argument list too long* Fehler kann man auch mit > > Schleifen umgehen: > > statt: rm * > > geht dann: for i in *; do rm $i; done > > Damit bekommst du üble Probleme, wenn Leerzeichen oder Newlines in > den Dateinamen sind, und _so_ geht es auch nicht rekursiv... Mit den Newlines hast Du recht (da haben eigentlich so gut wie alle Programme Probleme mit), mit Leerzeichen nicht. Das ist ein übler Aberglaube ;-) jan@k500:~/tmp/schleife> touch "1. datei mit blank" "noch ne datei mit leerzeichen" jan@k500:~/tmp/schleife> ll insgesamt 0 -rw-r--r-- 1 jan users 0 Mär 11 20:16 1. datei mit blank -rw-r--r-- 1 jan users 0 Mär 11 20:16 noch ne datei mit leerzeichen jan@k500:~/tmp/schleife> for i in *; do > echo $i > done 1. datei mit blank noch ne datei mit leerzeichen jan@k500:~/tmp/schleife> for i in *; do rm "$i"; done jan@k500:~/tmp/schleife> Rekursion geht natürlich nur mit etwas mehr Aufwand:rekursion { cd "$1" for i in * .[^.]* ..?*; do if test -d "$i"; then rekursion "$i" cd "$1" rmdir -- "$i" elif test -e "$i"; then rm -- "$i" fi done } rekursion . bash fetzt :-) Jan