Zur Veranschaulichung: Ich habe die LEDA-Bibliothek von der Website des Unternehmens heruntergeladen . Die Verwendung von tar -xzf schlägt fehl:
$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
Gunzip gefolgt von tar -xf funktioniert jedoch einwandfrei:
$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error
Kann mir jemand sagen, warum das so sein könnte? - Ich möchte, dass der Standardbefehl tar
die ganze Zeit funktioniert.
tar
, das -z nicht implementiert --zgunzip < archive.tar.gz | tar -x
sollte überall funktionieren.tar
keine Gunzip-Dekomprimierung unterstützt, können Sie stattdessen Folgendes tun :gunzip -c $file | tar -x
. Es ist üblich, dies in eine Shell-Funktion zu packen.tar xzf
gebe tatsächlich einen Fehler unter Debian GNU / Linux (das natürlich gnutar verwendet). Seltsam.Antworten:
Was passiert zu sein scheint, ist, dass sie das Archiv doppelt komprimiert haben.
Wenn Sie
file
Ihre gunzip-Datei ausführen, finden Sie immer noch ein gzip-Archiv. Und wenn Sie es umbenennen, um wieder .gz zu haben, können Sie es erneut mit einem Gunzip versehen.Es scheint, dass gnu tar kürzlich die
-z
Option automatisch hinzufügt , vorausgesetzt, die Eingabe ist eine Datei. Deshalb funktioniert es ohne die-z
Option, nachdem Sie sie bereitsgunzip
einmal ausgeführt haben. Tar hat sie automatisch hinzugefügt.Dieses Verhalten wird auf der Infoseite dokumentiert:
Das ist aus §8.1.1 "Erstellen und Lesen komprimierter Archive".
quelle