Zipando arquivos maiores que 2GB no shell bash

2

Eu tenho tentado zipar todos os arquivos no diretório partial em um único arquivo zip e depois transferi-lo para o servidor de destino. comando que eu usei é como

zip -j $Zipfilename *

o problema é que, às vezes, o tamanho total de todos os arquivos está atingindo > 2GB, então eu estou ficando abaixo do aviso

zip warning: name not matched

e os arquivos não estão sendo compactados. Existe outra maneira de fazer isso, sem obter o erro acima? Por favor me ajude!

    
por Synetech 28.02.2012 / 12:45

3 respostas

9

O Zip não é capaz de criar ZIPs maiores que 2 GB. Para melhor ou pior, o Linux tem outras ferramentas, como tar , gzip , bzip e outras que você pode usar, que têm um limite muito maior sobre o que elas podem criar. No entanto, se você insistir em manter o ZIP, tente usar a diretiva --split-size da seguinte forma:

zip -j --split-size 2g $zipfilename *

Caso você esteja se perguntando sobre as alternativas ...

Criando com Tar

tar -cf name_of_zip.tar directory/

Isto irá criar um simples arquivo Tar (bola). Bom para on-the-fly e quando você precisa fazer algo rápido.

tar -czf name_of_zip.tar.gz directory/

Isso cria um arquivo Tar-Gzipped de um diretório. tar-gz é um Alcatrão (bola) que foi ainda mais comprimido por gzip . É um pouco mais lento que uma operação Tar padrão, mas fornece uma compressão muito boa para o que você está recebendo.

tar -cjf name_of_zip.tar.bz directory/

Isso cria um arquivo Tar-BZipped de um diretório. tar-bz é a opção de tar mais lenta que você pode usar, mas fornece a maior quantidade de compactação no topo do tar.

O Untarring é uma questão simples de substituir a opção -c por uma opção -x . IE:

tar -xzf /tmp/some_file.tar.gz

Que desativa o /tmp/some_file.tar.gz tar (bola) em qualquer diretório no qual eu esteja atualmente.

Criando com gzip

gzip -c file file2 file3 > newfile.gz'

Cria um novo arquivo gzip de um arquivo ou um monte de arquivos.

gzip -cr directory/ > newfile.gz'

Cria um novo gzip de um diretório.

Descompactar é uma questão de simplesmente usar gunzip no seu arquivo gzip .

Criando com bzip

O BZip não faz a travessia do diretório, então é bom apenas para compactar um ou muitos arquivos.

bzip2 -ck file -<number> > compress.bz

onde é um número entre 1 e 9, 1 sendo o nível mais baixo de compressão e 9 sendo o mais alto.

    
por 28.02.2012 / 13:41
1

descompacte a versão 6.0 e o zip versão 3.0 suporta arquivos maiores que 2GB.

Novos recursos no UnZip 6.0, lançado em 20 de abril de 2009:

  • Suporta extensões PKWARE ZIP64, permitindo arquivos Zip e Zip entradas de arquivo maiores que 4 GiBytes e mais de 65536 entradas dentro de um único arquivo Zip. Este suporte está atualmente disponível apenas para Unix, OpenVMS e Win32 / Win64.
  • Suporte para o método de compactação bzip2.

Novos recursos no Zip 3.0, lançado em 7 de julho de 2008:

  • suporte a arquivos grandes (por exemplo, > 2 GB)
  • suporte para mais de 65536 arquivos por archive
  • suporte a arquivos com várias partes
  • suporte à compactação bzip2
por 01.03.2014 / 02:52
0

unix-way é usar tar para juntar arquivos juntos e gzip / bzip2 / any-other-compressor para compactar .tar archive.

    
por 28.02.2012 / 12:49

Tags