Lange Rede, kurzer Sinn: Das GNU-Tool tar leitet keine Pipe durch zip / unzip, da es niemanden interessiert.
Lange Geschichte, Originalgröße:
tar
war ursprünglich nicht zum Dekomprimieren und Komprimieren von Dateien gedacht, sondern zum Archivieren mehrerer Dateien in einer einzigen großen Datei. Da Benutzer ihre Dateien nicht nur archivieren, sondern auch komprimieren wollten, leiten sie die tar
Ausgabe einfach durch einen beliebigen Kompressor, der Datenstromeingaben akzeptiert, und legen die Ergebnisse in einer Datei ab. Profitieren!
Um eine solche Aufgabe so einfach wie möglich tar
zu gestalten, haben wir beschlossen, die erzeugten Dateien intern an Komprimierungswerkzeuge wie gzip, lzma usw. weiterzuleiten, die bei der Ausführung durch spezielle Flags für jedes Format aktiviert wurden tar
. Aus diesem Grund wird beim Versuch, eine beschädigte Datei zu extrahieren tar
, der zugrunde liegende Tool-Fehler anstelle der folgenden angezeigt tar
:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Es ist also nicht so, dass tar
ZIP-Dateien nicht dekomprimiert werden, sondern dass es nicht möglich ist, tar
sie durch das richtige Tool zu leiten, da sich niemand wirklich die Mühe gemacht hat, sie zu implementieren, und ZIP die Dateiarchivierungsfunktion der TAR-Datei bereits ausführt Format gibt es weniger Grund für tar, es zu unterstützen.
Jetzt gibt es All-in-One-Tools, die alles komprimieren / dekomprimieren, was Sie auf sie werfen. Auch hier benötigen Sie die richtigen Tools, um dies tatsächlich zu unterstützen. Wenn Sie sie nicht haben, schlägt das Tool fehl.
bsdtar
kann.zip
Archive extrahieren : P