Para encurtar a história: a ferramenta GNU tar não passa pelo zíper / descompacta, pois ninguém se importa.
Longa história, tamanho original:
tar
não foi inicialmente concebido para descompactar e compactar arquivos, mas para arquivar vários arquivos em um único arquivo grande. Como as pessoas não apenas queriam arquivar seus arquivos, mas também compactá-los, eles apenas canalizam a tar
saída através de qualquer compressor que aceite entrada de fluxo de dados e solte os resultados em um arquivo. Lucro!
Agora, para tornar essa tarefa o mais simples possível, tar
decidiu canalizar internamente os arquivos gerados nas ferramentas de compactação, como gzip, lzma etc., que foram ativadas por sinalizadores especiais para cada formato durante a execução tar
. É por isso que, quando você tenta extrair um arquivo corrompido, tar
é mostrado o erro subjacente da ferramenta, em vez de tar
:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Portanto, não é que tar
não descompacta arquivos zip, apenas que tar
não tem a capacidade de canalizá-lo através da ferramenta correta, já que ninguém se preocupou em implementá-lo e o zip já realiza a função de arquivamento de arquivo tar formato, há menos razões para o tar suportá-lo.
Agora, existem ferramentas all-in-one que compactam / descompactam tudo o que você lança nelas, novamente, você precisa das ferramentas corretas para realmente suportá-lo. Se você não os tiver, a ferramenta falhará.
bsdtar
pode extrair.zip
arquivos: P