Wenn Sie eine tar.gz-Datei extrahieren, erhalten Sie folgende Meldung: "Dies sieht nicht wie ein tar-Archiv aus."

29

Ich habe eine tar.gz-Datei und möchte sie mit dem Terminal extrahieren. Ich habe folgende Befehle benutzt: tar tvzf ldtp_3.5.0.orig.tar.gzund tar -xvzf ldtp_3.5.0.orig.tar.gz. Ich erhalte jedoch für beide Dateien das gleiche Ergebnis:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Die Ausgabe des Befehls file zeigt eine gzip-Datei:

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

Ich kann es mit der rechten Maustaste extrahieren -> Extrahieren, aber ich möchte das mit dem Terminal tun. Kann mir jemand sagen, wie das geht?

TheRookierLearner
quelle

Antworten:

37

Wenn Sie sich den Fehler ansehen, den Sie sehen, und gleichzeitig die Tatsache, dass Sie ihn tatsächlich dekomprimieren können, sehen Sie, dass es sich bei der Datei um ein echtes TAR / Gzip-Archiv handelt, nach dem Gzip jedoch möglicherweise keine sofortige TAR erstellt wird.

Das heißt, wenn Sie dies von einem Webserver heruntergeladen haben, wird manchmal die Gzip-Komprimierung auf Webinhalte auf Serverebene angewendet, um das Herunterladen von Inhalten zu beschleunigen. Wenn der Server jedoch nicht ordnungsgemäß so konfiguriert ist, dass bereits komprimierte Inhalte wie diese ignoriert werden, können versehentlich Gzip-Dateien doppelt kopiert werden.

In diesem Sinne würde ich sehen, ob ich es einfach von der Kommandozeile aus dekomprimiere, um zu sehen, was passiert. Verwenden Sie einen Befehl wie diesen:

gzip -d ldtp_3.5.0.orig.tar.gz

Und sehen Sie, was die resultierende Datei ist. Ich habe ein komisches Gefühl, nachdem Sie diesen Befehl ausgeführt haben, wird ldtp_3.5.0.orig.tarim Verzeichnis nicht ein , sondern eine Datei mit dem Namen source angezeigt ldtp_3.5.0.orig.tar.gz- aber möglicherweise mit einer geänderten Änderung? Wenn das der Fall ist, ist es wirklich doppelt gezippt. An diesem Punkt - nach diesem anfänglichen Un-Gzip - können Sie den tarBefehl ausführen, den Sie so haben:

tar -xvzf ldtp_3.5.0.orig.tar.gz

Und es sollte nun das gesamte TAR-Archiv korrekt dekomprimieren.

Eine andere Möglichkeit , etwas ähnliches zu diesem zweistufigen Verfahren zu tun ist , um die Ausgabe des gzipzu tarwie folgt aus :

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

Sowohl cim gzipals auch -am Ende des Befehls ist der Schlüssel:

  • Die cOption für gzipgibt gzipan, dass auf den Standardausgabestream dekomprimiert werden soll.
  • Die -am Ende der tarBefehlsmittel „Standard - Eingabe verwenden.“ So gekoppelt mit dem dem -cin gzip, wird das Rohr dann den Standardausgabestrom, um es verrohrt aus gzipund verbinden , die an der Standardeingabe in tar.
JakeGould
quelle
1
Ich habe den ersten Befehl ausprobiert gzip -d ldtp_3.5.0.orig.tar.gzund (seltsamerweise) eine .tarDatei erhalten. Als ich es jedoch versuchte, tar -xvf ldtp_3.5.0.orig.tarbekam ich eine Fehlermeldung: tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
TheRookierLearner 18.11.14
@TheRookierLearner Was dann passiert , wenn Sie tun , waren gzip -d ldtp_3.5.0.orig.tarauf das ldtp_3.5.0.orig.tar?
JakeGould
Ich habe es versucht gzip -d ldtp_3.5.0.orig.tar.gzund ich habe die Nachricht bekommen gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored gzip: on.gz: No such file or directory gzip: the.gz: No such file or directory gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored . Danach habe ich es versucht tar -xvzf ldtp_3.5.0.orig.tarund es hat funktioniert! Danke vielmals!
TheRookierLearner