Am Dienstag 14 September 2010 schrieb Sascha Girrulat: > Hallo, > > Am 14.09.2010 00:08, schrieb Martin Steigerwald: > > Am Montag 13 September 2010 schrieb Jochen Schulz: > >> Stefan Bauer: > >>> for i in $(ls *.tar.gz); do tar xfvz $i; done > >> > >> Ich schreibs immer wieder gern: das Globbing (*.tar.gz) wird > >> generell von der Shell ausgeführt, deswegen ist die Command > >> Substitution hier überflüssig. Folgendes tut genau so gut: > >> > >> for i in *.tar.gz; do tar xfvz $i; done > >> > >> (Genau genommen funktioniert es sogar besser, weil man dann keine > >> Probleme mit ARG_MAX bekommt.) > > > > find -name "*.tar.gz" -print0 | xargs -0 -n1 tar -xf > > > > (-0 ist eine Null) > > > > dürfte auch funktionieren, benötigt jedoch zwei zusätzliche externe > > Befehle. Zudem muss man hier an die Null-Byte-Variante denken, damit > > es auch mit Leerzeichen hinhaut. Daher finde ich die > > Shell-Schleifen-Variante eleganter. > > der vollst halber dann müsste auch sowas gehen wie: > > find *.tar.gz -exec tar -xzvf \{\} \; Nur wenn "find" immer nur ein Argument einfügt, was ich xargs mit -n1 sage. Oh, und das tut es offenbar: martin@shambhala:~/Zeit> mkdir test martin@shambhala:~/Zeit> cd test martin@shambhala:~/Zeit/test> touch 1 2 3 4 5 6 7 8 9 10 martin@shambhala:~/Zeit/test> find -exec echo tar -xf \{\} \; tar -xf . tar -xf ./6 tar -xf ./9 tar -xf ./2 tar -xf ./5 tar -xf ./4 tar -xf ./1 tar -xf ./7 tar -xf ./8 tar -xf ./3 tar -xf ./10 Nun denn, dann geht das natürlich auch. -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Attachment:
signature.asc
Description: This is a digitally signed message part.