Melhor método de compactação?

49

Eu quero compactar uma pasta de 16GB, mas qual é o melhor método? tar.gz? tar.bz2 rar? 7z? O arquivo seria menor se eu fosse compactado primeiro em um método, depois copiei o arquivo compactado para uma nova pasta e, em seguida, recompactei em algum outro método? Eu preciso fazer isso caber em um DVD (saída talvez 8.5GB, não me lembro), mas colocando "4370 MB" faz com que o arquivo compactado seja parte de 2,5 GB.

BTW, qual é o método de compactação padrão no Ubuntu?

    
por Amanda 05.01.2013 / 17:14

3 respostas

69

O padrão é gz . Os melhores resultados que recebo com 7z .

Aqui estão os resultados para um contêiner de caixa virtual de 1,4 Gb:

Bestcompression–sizeinMB:

7z493rar523bz2592lzh607gz614Z614zip614.arj615lzo737zoo890

Source

Install

 sudo apt-get install p7zip-full
    
por Rinzwind 05.01.2013 / 17:29
13

Esta pergunta é muito antiga, mas talvez alguém ache essa solução útil:

Use rzip após tar . Primeiro, ele compacta blocos de dados grandes de 900 MB usando um método de dicionário e, em seguida, entrega os dados limpos para bzip2 . É muito mais rápido do que as outras ferramentas de compactação strongs ( bzip2 , lzma ) e alguns arquivos compactam ainda melhor que bzip2 ou lzma .

Sim, gz é a ferramenta de compactação padrão no Linux. É rápido e, apesar de sua idade, oferece resultados muito bons na compactação de arquivos de texto, como o código-fonte. Outra ferramenta padrão é bzip2 , embora seja muito mais lenta.

Adição: lrzip é mais recente e estende o princípio do rzip. Ele suporta até mesmo tamanhos ilimitados de blocos, e uma escolha de métodos de compressão (LZMA, Bzip2, Gzip, LZO, ZPAQ ou nenhum). LZMA é o padrão. Para backup ou se você compartilhar muitos dados com outros usuários Linux / BSD, pode ser muito útil.

    
por user258532 19.05.2014 / 13:22
2

Eu opto por um LZMA . Tem menor sobrecarga de bytes e tem uma strong taxa de compressão. Comparação entre ZIP e LZMA: Eu criei dois arquivos seq.txt com código PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

que contém blocos repetidos de 0..9 dígitos ~ 1Mb de dados e rnd.txt com código PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

que contém blocos aleatórios de 0..9 dígitos ~ 1Mb de dados.

Resultados da compactação:

  • seq.txt, rnd.txt - 1100000 bytes
  • seq.txt.zip - 2502 bytes
  • rnd.txt.zip - 515957 bytes
  • seq.txt.lzma - 257 bytes
  • rnd.txt.lzma - 484939 bytes

Taxa de compactação:

  • ZIP - > "seq.txt" - > 99.772%
  • ZIP - > "rnd.txt" - > 53,094%
  • LZMA - > "seq.txt" - > 99,976%
  • LZMA - > "rnd.txt" - > 55,914%

Assim, o LZMA compactou dados sequenciais em 0,2% mais efetivamente do que o ZIP
e dados aleatórios em 2,8% mais efetivamente do que o ZIP.

Com certeza a LZMA vence!

    
por Agnius Vasiliauskas 04.11.2017 / 14:04