Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
XZ
O mais forte dos compressores comuns no Unix. É o padrão para baixar código-fonte e pacotes.
XZ
XZ é um formato de fluxo, escrito e lido do começo ao fim. Ele é usado para o arquivamento.
A extensão é .xz e o nome por extenso é XZ Archive. Os dois importam menos do que aquilo que o arquivo consegue carregar, e é disso que trata o resto desta página.
Ele remonta a 2009.
A idade interessa por um motivo prático: quanto mais antigo o formato, mais programas tiveram tempo de aprendê-lo.
Ela está publicada por inteiro, então dá para implementá-la a partir do documento em vez de por observação — é por isso que o formato aparece em tantos programas e por isso que arquivos escritos há vinte anos ainda abrem. Especificação publicada não é o mesmo que livre de royalties: quando o formato embrulha um codec, o licenciamento das patentes é uma questão à parte, que a norma não resolve.
XZ guarda o conteúdo exatamente. Salvar de novo não muda nada, então dá para abrir, editar e salvar quantas vezes você quiser sem acumular estrago — e é isso que faz dele um formato de trabalho e não de entrega.
XZ comprime um único fluxo e não faz ideia do que seja um nome de arquivo ou uma pasta. É por isso que ele aparece tantas vezes ao lado do TAR, que fornece a estrutura que falta.
Ele trabalha com 8 MB de cada vez: é dentro desse intervalo que uma repetição precisa caber para poder ser comprimida.
Esse único número explica a maior parte da diferença entre um formato de arquivamento e outro. Um intervalo maior encontra mais repetição e leva mais tempo e mais memória para isso — a troca é toda essa.
XZ traz uma soma de verificação, para que um arquivo danificado seja detectado em vez de lido errado em silêncio.
Consertar, uma soma de verificação não conserta nada. Ela diz que o arquivo está errado — essa é a diferença entre descobrir agora e descobrir por quem recebeu.
xz, 7-Zip e Keka leem esse formato, e a maioria dos programas do mesmo tipo também.
Quando um arquivo não abre, o formato raramente é o problema — mais comum é o programa ser mais antigo que ele. Converter para algo mais antigo é o caminho confiável, e é para isso que serve o resto deste site.
Nenhum navegador lê o formato.
Esse é de longe o motivo mais comum para convertê-lo: não que o formato seja ruim, mas que o lugar onde você quer mostrar o arquivo não consegue lê-lo.
XZ foi feito para ser entregue, não para se trabalhar dentro dele. Editar um é possível e raramente agradável; o caminho sensato passa pelo original e por uma nova exportação.
As reclamações que se repetem: ele guarda um único fluxo e não sabe descrever uma pasta.
Nada disso é motivo para evitar o formato. São as coisas que vale conhecer antes que uma delas te pegue de surpresa, o que é uma afirmação diferente e mais útil.
Essa é toda a distinção em relação ao 7z, e ela explica o resto. Um arquivo xz guarda exatamente um fluxo comprimido. Não tem diretório, não tem lista de nomes, nenhuma noção de vários arquivos. Comprima "relatorio.txt" e você recebe "relatorio.txt.xz"; não há mais nada dentro.
É por isso que ".tar.xz" é a forma normal. O tar agrupa a árvore de diretórios num fluxo, e o xz comprime esse fluxo, a mesma divisão de trabalho de ".tar.gz". Um ".7z" não precisa de tar porque o 7z já é em si um formato de arquivo compactado, e um ".xz" precisa porque não é.
Os dois usam LZMA2, então nos mesmos dados produzem tamanhos muito parecidos. O xz costuma superar o gzip em trinta por cento ou mais em texto, código-fonte e logs — a margem que transforma um download de 100 MB em 65.
Compra isso com tempo e memória. Comprimir nos níveis mais altos pode demorar muitas vezes mais que o gzip e pode querer várias centenas de megabytes de memória de trabalho. A descompressão é rápida e barata de qualquer forma, o formato certo para algo comprimido uma vez e baixado muitas vezes.
O kernel Linux é distribuído como ".tar.xz". Também são a maioria dos pacotes de distribuição e boa parte dos lançamentos de código-fonte. A conta é direta: um arquivo baixado milhões de vezes justifica quase qualquer esforço de compressão, já que o custo é pago uma vez e a economia se multiplica a cada download.
É também por isso que você encontra o xz principalmente ao baixar software, não quando alguém envia um arquivo. É um formato de distribuição, não de compartilhamento, e a diferença aparece nas ferramentas ao redor.
Em março de 2024 uma porta dos fundos foi encontrada no software xz-utils — versões 5.6.0 e 5.6.1, registrada como CVE-2024-3094. Havia sido introduzida deliberadamente por um colaborador que passou cerca de dois anos construindo confiança no projeto, e mirava no daemon SSH em sistemas onde uma biblioteca ligada ao xz era carregada dentro dele.
Foi descoberta por Andres Freund, um desenvolvedor que notou que logins SSH estavam demorando cerca de meio segundo a mais do que esperado, e investigou a anomalia em vez de ignorar. As versões afetadas estavam em ramos de teste e mal tinham chegado às distribuições estáveis, então a exposição real foi pequena.
Nada aconteceu com o formato de arquivo em si. A porta dos fundos estava numa versão específica de um programa específico, não alterou como arquivos xz são estruturados, e um .xz criado antes, durante ou depois desse período é um fluxo comprimido comum. Não existe jeito de um arquivo xz simples carregar o exploit.
A relevância duradoura é sobre como software de código aberto é mantido, não sobre compressão. Continua sendo o acontecimento mais consequente já ocorrido a este formato, e vale conhecer com precisão em vez de tratar como um boato de que o xz não é seguro.
O xz guarda uma soma de verificação — CRC32, CRC64 ou SHA-256 — e a confere na descompressão. Se um byte mudou no trânsito ou num disco falhando, a extração falha com um erro explícito em vez de produzir uma saída silenciosamente errada.
É uma vantagem real sobre o gzip puro, cuja verificação é mais fraca, e faz parte do motivo de as distribuições confiarem nele para entrega de software. Detecta dano; não consegue repará-lo, que é a única coisa que o registro de recuperação do RAR faz e nada aqui oferece.
O Zstandard, lançado pelo Facebook em 2016, comprime quase tão bem quanto o xz em velocidades próximas do gzip. Para qualquer coisa em que o tempo de compressão importa — construção de pacotes, backups executados toda noite, dados escritos continuamente — essa combinação é difícil de contestar, e várias distribuições migraram o formato de seus pacotes para ele.
O xz ainda vence em taxa de compressão pura nas configurações mais altas, o que o mantém no lugar para lançamentos de código-fonte e arquivos de kernel onde o arquivo é construído uma vez. Os dois não estão realmente disputando o mesmo trabalho.
Todo sistema Linux lida com xz pela linha de comando. O macOS de fábrica não traz o binário xz — o Homebrew ou o MacPorts fornece um — mas o tar do sistema, baseado em libarchive, descompacta um ".tar.xz" sozinho, o que cobre a maior parte do que aparece. O Windows precisou de um utilitário como o 7-Zip, que lê sem dificuldade. Descompactar um ".tar.xz" são dois passos que a maioria das ferramentas apresenta como um: desfazer a compressão, depois desempacotar o tar.
Não espere uma pasta ao descompactar um ".xz" solto. Você recebe exatamente um arquivo de volta — a coisa que foi comprimida — porque é tudo que o formato já guardou. Se você esperava uma árvore de diretórios, o arquivo que você queria era o ".tar" de dentro.
Use quando algo é comprimido uma vez e buscado muitas vezes: um lançamento, um download, um arquivo indo para armazenamento de longo prazo onde cada gigabyte custa dinheiro. Os minutos extras no tempo de compressão são amortizados a cada recuperação.
Não use para enviar um arquivo a uma pessoa. ZIP é o que o computador dela abre sem ajuda, e a diferença de tamanho numa única transferência raramente vale o atrito de explicar o que é um .xz e como abrir.
| Extensão | .xz |
|---|---|
| Tipo de mídia | application/x-xz |
| Primeira publicação | 2009 |