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 xz
o mesmo algoritmo de compactação que 7zip
(LZMA2). Você pode usá-lo para compactar arquivos tar.
Como para gzip
e bzip2
, há uma variante paralelapixz
que pode alavancar vários processadores para acelerar a compactação ( xz
também pode ser feita de forma nativa desde a versão 5.2.0 com a -T
opção). A pixz
variante também suporta a indexação de um tar
arquivo compactado, o que significa que é capaz de extrair um único arquivo sem precisar descompactá-lo desde o início.
lrzip é o que você realmente procura, especialmente se estiver compactando o código-fonte!
Citando o README:
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 :)
Exemplo (usando o padrão para outras opções):
Ultra compressão, cão lento:
Para pastas, basta alterar
lrzip
paralrztar
fonte
lrzip
também funciona muito bem para backups detar/cpio/pax
árvores de arquivos do sistema ed, porque geralmente contêm muitas redundâncias de longo alcance, algo quelrzip
é realmente bom para compactar.lrzip
epixz
em 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 olrz
arquivo tinha metade do tamanho doxz
arquivo (2,7 x 4,4 GB). Portanto, outro voto para esta resposta.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.
gzip
tende a comprimir e descomprimir relativamente rápido enquanto produz uma boa taxa de compressão.bzip2
é um pouco mais lento quegzip
no tempo de compactação e descompactação, mas produz taxas de compactação ainda maiores.LZMA
possui o maior tempo de compactação, mas produz as melhores proporções, além de ter uma taxa de descompressão superior à debzip2
.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
fonte
zpaq
ou outropaq8l
. No entanto, eles são tão lentos que são desprezíveis para a maioria dos usos no mundo real.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 ...zpaq pvc/usr/share/doc/zpaq/examples/max.cfg file.zpaq file.tar
comprime mais do quekgb -9
(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)zpaq
na verdade, comprimiu mais dekgb -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
kgb
ainda lhe interessa: (como foi minha escolha inicial nesta resposta, estou mantendo as informações aqui) OUbuntu 14.04 possui o kgb 1.0b4 , execute
sudo apt-get install kgb
para instalá-lo.Abaixo está uma versão do Windows que você pode tentar executar / compilar
kgb
no 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 -m9
parece 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 executandowine "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 comdmcs
(Mono)? veja esta dica .fonte
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.
fonte