Qual software de compactação de arquivos para linux oferece a maior redução de tamanho? [fechadas]

51

Eu faço uma tonelada de compactação de arquivos. A maioria das coisas que estou compactando é apenas código, então preciso usar menos perda de compactação. Eu queria saber se havia algo que oferece uma melhor redução de tamanho, em seguida, 7zip. Não importa quanto tempo leva para comprimir ou descomprimir o tamanho é o que importa. Alguém conhece um software como este no Linux? Ou o 7zip é o melhor?

Zach
fonte

Respostas:

37

7zipé mais um compactador (como PKZIP) do que um compressor. Está disponível para Linux, mas só pode criar arquivos compactados em arquivos regulares, não é possível compactar um fluxo, por exemplo. Não é capaz de armazenar a maioria dos atributos de arquivo Unix, como propriedade, ACLs, atributos estendidos, links físicos ...

No Linux, como um compressor , você tem xzo mesmo algoritmo de compactação que 7zip(LZMA2). Você pode usá-lo para compactar arquivos tar.

Como para gzipe bzip2, há uma variante paralelapixz que pode alavancar vários processadores para acelerar a compactação ( xztambém pode ser feita de forma nativa desde a versão 5.2.0 com a -Topção). A pixzvariante também suporta a indexação de um tararquivo compactado, o que significa que é capaz de extrair um único arquivo sem precisar descompactá-lo desde o início.

Stéphane Chazelas
fonte
6
Você pode expandir a distinção entre "compactador" e "compressor" que você está fazendo aqui?
mattdm
2
@mattdm, um compressor compacta apenas, um compactador compacta várias coisas em um arquivo compactado.
Stéphane Chazelas
2
@mattdm, estranho. Era uma terminologia e distinção muito comum nos anos 90, parece que a partir de uma pesquisa no Google, não é mais o caso.
Stéphane Chazelas
6
Talvez fosse uma coisa do DOS? No Unix, a distinção entre compactação e arquivamento é comumente feita (como você também diz), mas nunca ouvi "compactador".
mattdm
11
@mattdm, bem, compactar é arquivar + compactar (possivelmente com indexação, possivelmente membros compactados separadamente), o arquivamento não implica compactação. Não é coisa do DOS, mas possivelmente era francesa. Pesquisando arquivos da usenet, parece que só encontro artigos meus, então poderia ter sido minha invenção, embora eu acredite firmemente que não.
Stéphane Chazelas
65

lrzip é o que você realmente procura, especialmente se estiver compactando o código-fonte!

Citando o README:

Este é um programa de compactação otimizado para arquivos grandes. Quanto maior o arquivo e mais memória você tiver, melhor será a vantagem de compactação, especialmente quando os arquivos tiverem mais de 100 MB. A vantagem pode ser escolhida para ser tamanho (muito menor que o bzip2) ou velocidade (muito mais rápido que o bzip2). [...] O recurso exclusivo do lrzip é que ele tenta aproveitar ao máximo o RAM disponível em seu sistema o tempo todo para obter o máximo benefício.

O lrzip trabalha primeiro procurando e removendo qualquer redundância de dados de longa distância com um algoritmo baseado em rzip e depois compactando os dados não redundantes.

Con Kolivas fornece um exemplo fantástico na lista de discussão do kernel do Linux ; em que ele comprime um tarball de 10,3 GB de quarenta versões do Linux Kernel até 163,9 MB (1,6%), e o faz mais rápido que o xz. Ele nem estava usando o algoritmo de segunda passagem mais agressivo!

Tenho certeza que você terá ótimos resultados compactando tarballs enormes de código-fonte :)

sudo apt-get install lrzip

Exemplo (usando o padrão para outras opções):

Ultra compressão, cão lento:

lrzip -z file

Para pastas, basta alterar lrzipparalrztar

Alexander Riccio
fonte
11
Também posso contestar que lrziptambém funciona muito bem para backups de tar/cpio/paxárvores de arquivos do sistema ed, porque geralmente contêm muitas redundâncias de longo alcance, algo que lrzipé realmente bom para compactar.
quer
10
Eu tentei lrzipe pixzem um arquivo de texto de 19 GB. Ambos levaram cerca de meia hora para compactá-lo (em uma máquina com núcleo hexa), mas o lrzarquivo tinha metade do tamanho do xzarquivo (2,7 x 4,4 GB). Portanto, outro voto para esta resposta.
FNL
3
@Franki por 'contest', você quer dizer 'atestar'?
Mitchus 2/11
Parece Pied Piper!
Denys Vitali #
11
Você sabe qual seria a diferença entre lrzip e rzip? Parece que o rzip foi lançado em 1998, projetado para funcionar melhor em arquivos muito grandes com redundância a longa distância, por isso soa semelhante ao lrzip - apenas imaginando se o lrzip foi derivado do rzip? (rzip de rzip.samba.org )
Astara
6

Se você está procurando a maior redução de tamanho, independentemente da velocidade de compactação, LZMAé provavelmente a melhor opção.

Ao comparar as várias compressões, geralmente a troca é tempo versus tamanho. gziptende a comprimir e descomprimir relativamente rápido enquanto produz uma boa taxa de compressão. bzip2é um pouco mais lento que gzipno tempo de compactação e descompactação, mas produz taxas de compactação ainda maiores. LZMApossui o maior tempo de compactação, mas produz as melhores proporções, além de ter uma taxa de descompressão superior à de bzip2.

Fontes: http://bashitout.com/2009/08/30/Linux-Compression-Comparison-GZIP-vs-BZIP2-vs-LZMA-vs-ZIP-vs-Compress.html

http://tukaani.org/lzma/benchmarks.html

j883376
fonte
11
Eu preciso discordar disso! O compressor de arquivos sem perda que fornece o maior fator de redução, independentemente da velocidade de compactação que funciona no GNU / Linux, provavelmente é um zpaqou outro paq8l. No entanto, eles são tão lentos que são desprezíveis para a maioria dos usos no mundo real.
Franki
@Franki arrefecer sudo apt-get install zpaq, eu fiz alguns testes, de acordo com a wiki , essa aplicação seria o mais novo de 2009, mas ainda perde para a KGB (que usos PAQ6), mas KGB é muito mais lento ...
Aquarius Poder
@Franki, na verdade, eu acabei de descobrir que zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tarcomprime mais do quekgb -9
Aquarius Power
4

(resposta atualizada) Se o tempo não interessar, use o ZPAQ v1.10 (ou mais recente) ex .:
zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar (o local do arquivo max.cfg pode variar, verifique sua lista de arquivos de pacotes instalados)

zpaqna verdade, comprimiu mais de kgb -9 newFileName.kgb yourFileName.tar.
Isso é baseado no algoritmo mais antigo PAQ6 , e é muito lento ...
Eu testei com todos os outros compressores como 7zip, lrzip, bzip2, kgb .. e zpaq compactou mais!

Se kgbainda lhe interessa: (como foi minha escolha inicial nesta resposta, estou mantendo as informações aqui) O
Ubuntu 14.04 possui o kgb 1.0b4 , execute sudo apt-get install kgbpara instalá-lo.

Abaixo está uma versão do Windows que você pode tentar executar / compilar kgbno linux, mas não obtive sucesso.
A versão 2 beta2 pode ser encontrada no SourceForge , mas não há binários Linux disponíveis. Você pode tentar executá-lo no console com wine kgb2_console.exe -a7 -m9(o método -a6 -m9parece ser equivalente ao melhor método no 1.0b4, -a7é novo no 2 beta2). Embora eu tivesse uma melhor estabilidade instalando o .NET 2.0 com winetricks e executando wine "KGB Archiver 2 .net.exe"(não gosto nem um pouco disso, continuarei com o Linux 1.0b4 nativo que tem quase o mesmo resultado que o 2 beta2).
De qualquer forma, a versão 2 beta2 também merece uma versão nativa do Linux! Talvez algo possa ser realizado com o MinGW, veja isso , mas esse comando ainda falha muito:i586-mingw32msvc-g++ kgb2_console.cpp -o kgb. Pode-se tentar compilá-lo com dmcs(Mono)? veja esta dica .

Poder do Aquário
fonte
2

O 7zip não é uma tecnologia única, mas suporta vários métodos de compactação diferentes (consulte a wikipedia 7z nisso).

Um conjunto de testes foi realizado com diferentes ferramentas, especialmente para arquivos de origem C. Não tenho certeza de quais das ferramentas existem para Linux se elas ainda existirem. No entanto, você pode observar que o melhor algoritmo foi o PPM com modificações (PPMII e depois PPMZ).

Se você estiver interessado nas ferramentas, pode navegar no site, em russo, mas o google translate pode ajudar. Há um grande depósito de binários , que você pode usar (ou não conseguirá) do Linux com o wine, se realmente necessário.

Yaroslav Nikitenko
fonte