Pour faire court: l'outil tar GNU ne passe pas par le zip / dézipper car personne ne s'en soucie.
Longue histoire, taille originale:
tar
n'était pas initialement destiné à décompresser et compresser des fichiers, mais à archiver plusieurs fichiers dans un seul gros fichier. Étant donné que les gens voulaient non seulement archiver leurs fichiers, mais aussi les compresser, ils dirigent simplement la tar
sortie via n'importe quel compresseur qui accepte les entrées de flux de données et déposent les résultats dans un fichier. Profit!
Maintenant, pour rendre cette tâche aussi simple que possible, nous avons tar
décidé de diriger en interne les fichiers générés vers des outils de compression, comme gzip, lzma, etc., qui étaient activés par des drapeaux spéciaux pour chaque format lors de l'exécution tar
. C'est pourquoi lorsque vous essayez d'extraire un fichier corrompu, tar
vous voyez l'erreur d'outil sous-jacente, au lieu de tar
:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Donc, ce n'est pas que tar
cela ne décompresse pas les fichiers zip, mais cela tar
n'a pas la capacité de le diriger via l'outil approprié, car personne n'a vraiment pris la peine de l'implémenter, et zip accomplit déjà la fonction d'archivage de fichiers du fichier tar format, il y a moins de raisons pour que tar le supporte.
Maintenant, il existe des outils tout-en-un qui compressent / décompressent tout ce que vous leur lancez, encore une fois, vous devez avoir les bons outils pour les prendre en charge. Si vous ne les avez pas, l'outil échouera.
bsdtar
peut extraire des.zip
archives: P