por que devo usar tar.xz em vez de tar.gz? xz é um programa de compactação de dados sem perdas e formato de arquivo [duplicado]

6

Hoje, pela primeira vez na minha vida, vi tar.xz download. Eu procurei na internet e encontrei artigos da Wikipédia ( xz e XZ Utils )

Citação interessante sobre os usuários de xz

xz has gained notability for compressing packages in the GNU coreutils project,[7] Debian family of systems deb (file format), openSUSE,[8] Fedora,[9] Arch Linux,[10] Slackware,[11] FreeBSD,[12] Gentoo,[13] GNOME,[14] and TeX Live,[15] as well as being an option to compress a compiled Linux kernel.[16] In March 2013, kernel.org announced the use of xz as the default compressed file format for distributing kernel archive files.[17]

Eu sempre uso tar.gz . Quando e por que devo usar tar.xz ? Qual é o caso de uso?

Eu descobri depois do primeiro comentário que um pergunta similar já postada. Costumo comprimir o mongodump / mongoexport (BSON / JSON) e o mysqldump (texto SQL). Existe uma vantagem em usar tar.xz para esses backups?

    
por Ivanov 05.08.2016 / 19:51

3 respostas

6

gzip e xz usam dois algoritmos diferentes e, portanto, têm um desempenho diferente, tanto em termos do nível de compactação que atingem quanto em termos de recursos que consomem.

Em geral , xz atinge taxas de compactação mais altas, mas precisa de muito mais memória e tempo.

Eu pessoalmente uso xz para arquivar dados; grandes arquivos que eu preciso guardar por um longo tempo. Eu uso gzip de outra forma, já que geralmente é mais rápido.

Teste os dois e veja como eles se comportam no arquivo média tar (ou qualquer outro).

    
por 05.08.2016 / 20:16
2

xz tornou-se um padrão quando se trata de gerenciamento de pacotes nos últimos anos.

o algoritmo de compressão LZMA2 xz usa, é excepcionalmente eficiente com dados de texto (e "text-like"). Eu o uso pessoalmente para praticamente qualquer coisa, onde a velocidade de codificação computacional não é um problema ( xz descompacta muito mais rápido que a compactação, na verdade é um dos alvos de design).

Por isso, é ótimo para coisas como arquivamento ou backup (em geral, arquivos que são descompactados muito, mas onde os dados não são compactados o tempo todo, ou alterados, etc.). Não é uma decisão tão boa para a compactação de fluxo - pelo menos não com tanta frequência, porque o LZMA2 não é exatamente leve em recursos, ao compactar.

Mas gostaria de comentar uma outra declaração sua: "deveria". O que você deve ou não deve usar, depende do que você precisa dos seus dados. Mesmo que xz e LZMA2 existam há anos, as pessoas ainda consideram a compactação com gz como fall-back por motivos de compatibilidade. Coisas como Trac ou cgit oferta .tar.gz , .7z e .tar.xz . Com a opção .tar.gz estando lá, porque foi "para sempre" , e é uma boa medida de retorno em qualquer tipo de dispositivo, não importa o quão pequeno ou antigo seja.

Assim como um contra-exemplo, lzop é um compressor rápido e que economiza recursos, que é frequentemente usado em espaçonaves, mas Caso contrário, não é muito eficiente. Eu não poderia dizer que não é amplamente utilizado, no entanto. É frequentemente usado em sistemas em que é mais importante compactar rapidamente algo com pouca energia e espaço de computação.

O que você deve ou não usar é o que faz mais sentido para você e para as pessoas que interagem com seus dados.

Uma coisa que surgiu em minha mente recentemente: man páginas são rotineiramente compactadas com gzip . Se você olhar para /usr/share/man/man1/ , por exemplo, verá muitos arquivos semelhantes a mv.1.gz , se nem todos forem compactados. Agora, faria sentido alterar para .xz arquivos devido à melhor compactação, mas os ganhos de espaço são mínimos, em comparação com os efeitos negativos da remoção de .gz para .xz . A razão para isso é a compatibilidade quase universal. Mesmo abrindo os arquivos compactados .gz diretamente em Vim funciona bem, e age como uma compressão transparente.

    
por 05.08.2016 / 20:51
1

O formato .xz fornece alguns recursos avançados. Ao mesmo tempo, foi mantido simples o suficiente para ser usado em muitos sistemas embarcados. Aqui está um resumo dos recursos:

  • Leitura de acesso aleatório: Os dados podem ser divididos em blocos compactados independentemente. Todo arquivo .xz contém um índice dos blocos, o que torna possível a leitura limitada de acesso aleatório quando o tamanho do bloco é pequeno o suficiente.
  • Verificações de integridade: a integridade de todos os cabeçalhos é sempre protegida com o CRC32. A integridade dos dados reais pode ser verificada com CRC32, CRC64, SHA-256 ...
  • Concatenação: assim como com os arquivos .gz e .bz2 , é possível concatenar .xz arquivos como estão. O descompactador pode descompactar um arquivo concatenado como se fosse um arquivo .xz de fluxo único regular.
  • preenchimento: zeros binários podem ser anexados a arquivos .xz para preenchê-los, por exemplo, preencher um bloco em uma fita de backup. O preenchimento precisa ser múltiplo de quatro bytes, porque o tamanho de cada arquivo .xz válido é um múltiplo de quatro bytes.
por 05.08.2016 / 20:46