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
Aqui você converte 7Z para XZ de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. O arquivo viaja criptografado até o nosso servidor, é convertido lá e é apagado assim que o trabalho termina.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
7Z para XZ
Essa é uma conversão de compatibilidade, não de compressão, e é bom deixar isso claro logo de início. Quem está montando um pacote de código-fonte para um projeto open source, alimentando um script de build de servidor Linux, ou publicando um release num repositório tem um pipeline que espera um tarball comprimido — e recebeu um 7Z em vez disso, geralmente porque quem gerou o arquivo trabalha no Windows.
O outro lado não vai mudar por causa de um arquivo. A maioria dos sistemas que esperam um tarball só entenderia 7Z se alguém instalasse outra ferramenta em cada máquina que roda o pipeline, e isso é uma mudança bem maior do que converter um arquivo. Não há argumento de tamanho em nenhuma direção que valha agir.
Isso é incomum neste site, e por isso os números aqui são pouco emocionantes. O 7Z surgiu em 1999 e o XZ em 2009, e os dois se apoiam na família LZMA; o dicionário de compressão de cada um chega a 64 MB. Um dicionário desse tamanho é o que permite ao compressor notar que uma frase no arquivo quarenta já apareceu no arquivo três — e os dois formatos conseguem notar as mesmas coisas.
Então a taxa de compressão é decidida pelos dados, não pela escolha do formato. Numa pasta de código-fonte ou logs, os dois vão encontrar bastante repetição e vão encontrar aproximadamente a mesma quantidade; numa pasta de JPEGs ou MP4s, nenhum encontra nada, porque a redundância já foi removida antes de os arquivos serem compactados.
O XZ comprime exatamente um fluxo. Não tem campo para nome de arquivo, nenhuma noção de diretório, e nenhum jeito de dizer que esse trecho de bytes era um membro e aquele outro era outro. Não é uma limitação que alguém esqueceu de corrigir — é o desenho, e é o motivo de o TAR existir ao lado.
A conversão, portanto, extrai o 7Z, agrupa tudo que ele guardava num TAR, e comprime esse TAR com xz. O que vale saber é que esse é um TAR novo, escrito agora, e não um tarball que o 7Z carregava — então se o 7Z continha um .tar como um arquivo comum, esse arquivo é preservado como arquivo e não é desempacotado.
O que sai é um arquivo terminando em .xz, e o nome honesto para ele termina em .tar.xz. Nada quebra se você deixar assim — xz -d e tar olham para os bytes, não para a extensão — mas boa parte do software e das pessoas do outro lado lê a extensão primeiro, e um .xz que na verdade guarda um tarball é o tipo de surpresa que gera chamado de suporte.
Renomeie antes de publicar. tar xf projeto.tar.xz faz as duas camadas num passo só, exatamente o que quem lê suas notas de lançamento espera; um arquivo chamado projeto.xz convida a rodar unxz e deixa a pessoa com um arquivo chamado projeto que na verdade é um pacote inteiro.
Um arquivo 7Z sabe o que tem dentro. Nomes, caminhos, tamanhos e uma soma de verificação por item são gravados no próprio arquivo, e é por isso que um descompactador mostra o conteúdo de um 7Z de 400 MB instantaneamente, sem descompactar nada. Um XZ não sabe nada disso: xz --list relata o número de blocos e o tamanho do fluxo, e é tudo que consegue informar.
Numa listagem de .tar.xz, tudo é lido de dentro do TAR, o que significa que o fluxo precisa ser descompactado inteiro para chegar lá. Num release pequeno isso é um segundo e ninguém percebe; num arquivo de vários gigabytes que alguém quer espiar, é a diferença entre uma resposta instantânea e uma pausa para o café.
O xz faz parte da instalação básica de praticamente toda distribuição Linux e de todo BSD, porque o próprio gerenciador de pacotes depende dele. O GNU tar entende a flag -J para XZ desde a versão 1.22, então nenhum passo separado é necessário — uma imagem de contêiner com nada além de um shell costuma conseguir desempacotar um .tar.xz.
O 7-Zip não está nessa posição. É excelente e gratuito, mas ainda é algo que uma pessoa ou uma imagem de build precisa instalar. Num servidor de build, numa máquina de cliente ou num contêiner mínimo que você não montou, essa é a questão inteira.
O 7Z suporta criptografia e o XZ não, então um arquivo protegido não pode ser carregado de forma alguma. Em vez de tentar adivinhar uma senha ou produzir algo incompleto, o extrator é chamado com senha vazia, para que um arquivo criptografado falhe imediatamente com uma mensagem legível. Descriptografe localmente com 7-Zip ou Keka e converta o arquivo em texto plano.
O outro tipo de recusa acontece antes de qualquer coisa ser escrita em disco. O arquivo é consultado sobre o que declara que vai descompactar, e um total acima de 2 GB é recusado — um 7Z pequeno pode honestamente anunciar que se expande para terabytes, e descobrir isso durante a extração já seria tarde demais.
Não vai para o seu navegador. Muitas ferramentas deste site convertem no seu próprio aparelho e dizem isso claramente; reempacotar arquivos compactados é uma das exceções, porque precisa de 7-Zip e xz como programas de verdade. O arquivo viaja por uma conexão criptografada até um contêiner que roda esses programas, sem acesso próprio à internet.
Cada trabalho recebe seu próprio diretório temporário num sistema de arquivos com memória volátil, apagado ao fim do trabalho independentemente do resultado. Um trabalho ainda rodando após sessenta segundos é interrompido. O plano gratuito aceita 25 MB por arquivo.
Rode tar tJf sobre o resultado e compare a listagem contra o 7Z entrada por entrada: mesma contagem, mesmos caminhos, mesmos tamanhos. É a checagem mais barata possível e pega a falha que mais importa aqui, que é um caminho de topo deslocado por um diretório.
Timestamps e permissões Unix são a outra coisa a olhar em vez de assumir. Os arquivos saem byte a byte iguais — este é um reempacotamento sem perdas — mas o que o contêiner antigo registrava sobre eles nem sempre sobrevive, e um 7Z escrito no Windows pode nunca ter carregado um bit de permissão Unix para começo de conversa.
| 7Z | XZ | |
|---|---|---|
| Nome completo | Arquivo 7-Zip | Arquivo XZ |
| Extensão do arquivo | .7z | .xz |
| Tipo de mídia | application/x-7z-compressed | application/x-xz |
| Compressão | Sem perdas — nada é descartado | Sem perdas — nada é descartado |
| Publicado pela primeira vez | 1999 | 2009 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | ZIP | GZ, BZ2 |
Nada é descartado. 7Z e XZ guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.
XZ comprime um único fluxo e não comporta um diretório. É justamente por isso que XZ costuma vir junto de um formato de arquivamento: o arquivo reúne os itens e XZ comprime o resultado.
7-Zip e Keka leem tanto 7Z quanto XZ, então dá para comparar o resultado com o original sem um segundo programa.
XZ trabalha com 8 MB de cada vez, contra 16 MB de 7Z: é dentro desse intervalo que uma repetição precisa caber para poder ser comprimida. É daí que vem a diferença de compressão e por isso ele é o mais rápido dos dois.
XZ e de 2009. xz, 7-Zip e Keka leem o formato.
É: esta conversão precisa de um software que não roda num navegador. O arquivo viaja criptografado até o nosso servidor, é apagado assim que o trabalho termina e o resultado, depois de 60 minutos. O trabalho é feito por 7-Zip, o compactador, na sua forma de linha de comando.
É, até 100 conversões por dia para arquivos de até 25 MB. Esse único limite existe porque esta conversão roda num servidor que nós pagamos. No resto aqui não há nada limitado, e marca d’água não existe em caso nenhum. O limite existe porque 7-Zip precisa de uma máquina nossa para rodar.
Não. XZ guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original. Os arquivos saem byte a byte iguais. O que não sobrevive é o que o contêiner sabia *sobre* eles e não o que havia *dentro* deles: uma senha e, em alguns formatos, as permissões e as datas originais.
XZ comprime um único fluxo e não comporta um diretório. É justamente por isso que XZ costuma vir junto de um formato de arquivamento: o arquivo reúne os itens e XZ comprime o resultado.
Nada é descartado. 7Z e XZ guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.