Amigos, às vezes, fazemos um download de um arquivo ZIP que é na verdade, um arquivo múltiplo, ou seja, tem a parte ".zip" principal e tem uma série de arquivos ".zNN" - onde "NN" é um número de começa em 01 e vai até quantas partes forem necessárias para conter todo o arquivo.
Um arquivo assim, foi zipado com a opção de dividi-lo em tantas partes.
Para descompactar um arquivo desses pelo terminal, rode o comando:
cat arquivo.z* > teste.zip && zip -F teste.zip --out teste2.zip
O redirecionamento para "teste.zip", é para não sobrescrever com nenhum arquivo existente na pasta e, portanto, qualquer nome pode ser usado.
A segunda parte do comando, é um teste para verificar se o agrupamento dos arquivos foi feito corretamente. Se houver erro, ele vai criar o 'teste2.zip", senão, ele vai informar que não foi preciso criar o "teste2.zip", porque o arquivo original não tinha erros.
A seguir, descompacte o arquivo "teste.zip" (ou "teste2.zip", se este foi criado) com o comando:
unzip teste.zip
Ele vai reclamar de algumas coisas (dizendo, por exemplo, que o arquivo parece dizer ser o início de um arquivo múltiplo), mas você pode, seguramente, ignorar as mensagens de erro.
O próprio unzip diz que tentará recompensar o arquivo e o extrairá para você.
[3] Comentário enviado por NLPM em 28/08/2012 - 15:27h
Mais um "mas", tua dica é muito boa porque pelo terminal tu fica mais independente, pode utilizar em qualquer SO, tua dica vai para os meus arquivos úteis, já salvei, obrigado.
[4] Comentário enviado por lcavalheiro em 28/08/2012 - 15:34h
Caso você seja um fulano perfeccionista e meio enjoado como eu, e queira que o cat concatene os arquivos arquivo.zip, arquivo.z01, arquivo.z02... na ordem numérica, você pode fazer da seguinte maneira:
[code] $ cat arquivo.zip > teste.zip && for i in `seq -w 1 1 N`; do cat arquivo.z$i >> teste.zip; done && zip -F teste.zip --out teste2.zip [/code]
Em que o "N" dentro do comando seq entre crases é o número do último arquivo da sequência. Isso minimiza as mensagens de erro no final, além de ficar mais bonitinho.