Eu tenho vários arquivos muito grandes localizados em uma máquina Linux que gostaria de compactar e economizar espaço. Eu tentei usar a combinação tar / gzip e notei que a taxa de compactação não é muito boa. Um 1.2GB
arquivo foi compactado em um 1.1GB
arquivo. Eu tentei aumentar o nível de compactação, conforme sugerido aqui: Como especificar o nível de compactação ao usar tar -zcvf?
mas ainda não era melhor. Copiei o mesmo arquivo para uma máquina Windows e executei o WinRar. O arquivo compactado resultante tinha apenas 0.45GB
tamanho.
Existe uma razão para uma discrepância tão grande? Existe uma melhor ferramenta de compactação para Linux?
ATUALIZAÇÃO: Eu até tentei lzma e ainda não muito melhor
There IS a rar utility for linux
, nome do pacote geralmente 'rar'.Respostas:
Gzip não é um algoritmo muito bom comparado ao Rar .
Um método mais comum para linux atualmente é o bzip2, que é instalado por padrão em quase todas as distribuições linux.
Você pode mudar o
tar
arquivador para usar a compactação bzip2 alterando sua linha de comando para, emtar -cvjf
vez detar -cvzf
a chave ser a substituição doz
comj
nas opções.Esperamos que isso produza um bom aumento na taxa de compressão.
O motivo da discrepância é porque eles são algoritmos fundamentalmente diferentes para compactação. O gzip é um algoritmo mais antigo e os algoritmos mais antigos tendem a ser menos intensivos em termos computacionais, de forma que eles terminariam em um tempo razoável. Isso é um efeito do poder de processamento mais prontamente disponível; podem ser usados algoritmos melhores e com maior intensidade computacional que terminam em um tempo semelhante ao de um algoritmo mais antigo em um computador mais antigo. Por outro lado, os algoritmos mais antigos concluirão a compactação muito mais rapidamente em um computador mais novo.
Quase todo arquivador do Windows tem um equivalente no Linux. O 7zip é um bom arquivador que obtém bons resultados no Windows e possui uma versão não oficial do Linux.
fonte