Mehrere Tar Archive auf einmal entpacken
2011-08-17
4 Kommentare »
Heute suchte ich eine Datei die in einem vom ca. 3000 tar.gz Archiven enthalten sein musste, aber ich wusste natürlich nicht in welchem. Da sie nicht besonders groß waren, wollte ich sie einfach alle entpacken und mir die Datei die ich suchte raus picken. Dabei stellte ich das erste mal fest das folgendes nicht funktioniert.
$ tar -xvzf *.tar.gz tar: blablubarchive.tar.gz: Not found in archive
Man bekommt nur einen Fehler ausgegeben. Tar kann anscheinend nicht mit einem Wildcard aufrufen umgehen, aber eine Lösung war auch so schnell gefunden.
$ for i in *.tar.gz; do tar -xvzf ${i}; done
Vielleicht hilft es ja mal jemandem.
4 Kommentare
Usul
schrieb am 17.08.2011 um 08:25 Uhr
Hm, das ist in erster Linie aber kein tar-Problem. Das Auflösen der Wildcard übernimmt nicht tar, sondern bereits die Bash. Diese macht aus dem Wildcard-Zeichen alle möglichen Dateinamen und überreicht diese im Pulk an tar. Tar wiederum interpretiert nur einen dieser Parameter als Archivnamen, die anderen aber als Dateinamen, die es aus dem erstgenannten Archiv entpacken soll, was zu der Fehlermeldung führt.
Die Wildcard kommt also gar nicht bis zum tar-Befehl, der ist unschuldig
Die Bash löst den vorher auf.
kostaki
schrieb am 19.08.2011 um 07:48 Uhr
Ja aber warum klappt das bei allen anderen Befehlen und hier nicht? Wie auch immer so ging es ja auch.
kero
schrieb am 27.02.2012 um 18:53 Uhr
tar xvf bla.tgz –no-anchored some.txt
wäre glaube ich besser geeignet als alle Archive entpacken zu muessen.
Olafson
schrieb am 03.03.2012 um 05:18 Uhr
Das sollte auch funzen:
————————–
zgrep [SUCHMUSTER] [ORT]
Beispiel:
————————–
zgrep -i failed /var/log/*.gz
Gruss