Tentei a maioria dos formatos (gzip etc.) para extrair um arquivo zip tar
e, quando fiquei frustrado o suficiente para o Google, não encontrei maneira de extrair um arquivo zip com tar
apenas recomendações para usar zip
ou unzip
. Por uma questão de fato, meu sistema Linux nem sequer tem um zip
utilitário, mas apenas unzip
(me perguntando por que essa é a principal opção recomendada). Claro que unzip
funcionou, resolvendo meu problema, mas por que não consigo tar
extrair arquivos zip? Talvez eu devesse perguntar: qual é a diferença entre os métodos zip e de compressão suportados por tar
?
28
bsdtar
pode extrair.zip
arquivos: Pzip
por padrão porque o seu licenciamento não é compatível com a GPLRespostas:
A filosofia do UNIX é ter pequenas ferramentas. Uma ferramenta está fazendo exatamente uma coisa, mas isso é especialmente bom.
A
tar
ferramenta está apenas combinando vários arquivos em um único arquivo sem qualquer compactação.A
gzip
ferramenta está apenas compactando um único arquivo.Se você deseja ter os dois, basta combinar as duas ferramentas, resultando em um
.tar.gz
arquivo.A
zip
ferramenta é uma coisa completamente diferente. É preciso um monte de arquivos e os combina em um único arquivo compactado. Com algoritmos totalmente diferentes.Se você deseja que uma ferramenta governe todos eles, use
atool
. Vai apoiar um monte de formatos diferentes simplesmente detectando o formato e chamando a ferramenta correta.fonte
gzip
algoritmo de compactação é o mesmo usado porzip
. A diferença é que issogzip
significa compactar qualquer fluxo de bytes, incluindo um.tar
arquivo, enquanto quezip
, derivado e inspirado pelo PKZIP, compacta e arquiva em uma etapa (e nessa ordem).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 atar
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çãotar
. É por isso que, quando você tenta extrair um arquivo corrompido,tar
é mostrado o erro subjacente da ferramenta, em vez detar
:Portanto, não é que
tar
não descompacta arquivos zip, apenas quetar
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á.
fonte
afio
).file-roller
...Um
tar
arquivo é um formato de arquivo projetado para arquivos de fita. Esse formato pode ser compactado usando (por exemplo)gzip
oubzip2
formatos de compactação. Quando você extrai um arquivo tar compactado, descompacta efetivamente e extrai os arquivos originais dotar
arquivo não compactado .Quando você extrai um
zip
arquivo, não há nenhumtar
arquivo nele, apenas todos os seus arquivos originais. Portanto, não há razão paratar
estar envolvido no processo.Você também pode compactar arquivos usando
gzip
oubzip2
por si só, da mesma forma que pode criarzip
arquivos (semtar
envolvimento). Quando você descompacta esses arquivos, usagunzip
oubunzip2
nãotar
.fonte
Como a resposta "Algumas coisas simplesmente são e devemos aceitá-las" também não se encaixa comigo, eu apenas fiz algumas pesquisas (sempre bom aprender algo novo, não é?).
Portanto, parece que o problema é um dos locais onde as ferramentas foram e qual era o objetivo delas.
Em vez de parafrasear o que encontrei e tornar as águas desnecessariamente escuras (ofuscação me irrita), dê uma olhada neste artigo: http://www.differencebetween.net/technology/difference-between-zip-and-gzip/
Suponho que o tar possa ter construído no suporte a zip, mas as metodologias são aparentemente fundamentalmente diferentes. Ou talvez eles pensassem por que alguém usaria essa ferramenta de arquivamento para gerenciar arquivos de outra ferramenta de arquivamento e compactação (ou talvez houvesse alguma discussão entre os dois codificadores originais e houvesse uma ordem de restrição arquivada que impedisse que os zips cruzassem o limite do aplicativo .. Sim, eu estou brincando).
fonte