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:
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
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
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 $i1. datei mit blank
done
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 > |