En pocas palabras: la herramienta tar GNU no se canaliza a través de zip / unzip ya que a nadie le importa.
Larga historia, tamaño original:
tar
inicialmente no estaba destinado a descomprimir y comprimir archivos, sino a archivar varios archivos en un solo archivo grande. Dado que las personas no solo querían archivar sus archivos, sino también comprimirlos, simplemente canalizan la tar
salida a través de cualquier compresor que acepte la entrada de flujo de datos y suelte los resultados en un archivo. ¡Lucro!
Ahora, para hacer que esta tarea sea lo más sencilla posible, tar
decidimos canalizar internamente los archivos generados a herramientas de compresión, como gzip, lzma, etc., que se activaron mediante marcas especiales para cada formato al ejecutarse tar
. Es por eso que cuando intenta extraer un archivo dañado tar
, se muestra el error subyacente de la herramienta, en lugar de tar
's:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Entonces, no es que tar
no descomprima los archivos zip, solo que tar
no tiene la capacidad de canalizarlo a través de la herramienta correcta, ya que nadie se molestó en implementarlo, y zip ya cumple la función de archivo del archivo tar formato hay menos razones para que tar lo soporte.
Ahora, hay herramientas todo en uno que comprimen / descomprimen todo lo que les arrojas, una vez más, debes tener las herramientas correctas para admitirlo. Si no los tiene, la herramienta fallará.
bsdtar
puede extraer.zip
archivos: P