Mailinglist Archive: opensuse-de (4565 mails)

< Previous Next >
Re: Wann ",',´,`
  • From: Jan.Trippler@xxxxxxxxxxx (Jan Trippler)
  • Date: Tue, 11 Mar 2003 20:11:45 +0000 (UTC)
  • Message-id: <20030311203015.B6427@xxxxxxxxxxxxxx>
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:
<ungetestet>
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 .
</ungetestet>

bash fetzt :-)

Jan


< Previous Next >
Follow Ups