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 XZ para BZ2 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.
XZ para BZ2
Esta conversão tem uma justificativa honesta, e vale colocar em primeiro lugar porque qualquer comparação geral entre os dois formatos manda fazer o oposto. Descompactar um XZ aloca um buffer do tamanho do dicionário, que pode chegar a 64 MB. Num notebook isso é invisível. Num roteador, dentro de um contêiner com limite de 32 MB de memória, ou numa máquina Unix comercial antiga com limite conservador por processo, é a diferença entre o pacote abrir ou o extrator ser encerrado.
A segunda versão do mesmo problema é o xz simplesmente não estar instalado. Ele surgiu em 2009, recente o bastante para que vários sistemas de longa vida — equipamentos, controladores industriais — tenham só bzip2 e gzip. Converter o pacote é a mudança que você tem permissão de fazer.
XZ, de 2009, é LZMA2: um compressor de janela deslizante com dicionário de até 64 MB. Comprimindo o byte cem milhões, ele ainda consegue ver o byte trinta e seis milhões, motivo de notar que um arquivo no fim de um pacote se parece com um no início. Para descomprimir, o leitor precisa manter essa mesma janela disponível.
BZ2, de 1996, não desliza nada. Corta a entrada em blocos de até 900 KB, ordena cada um com uma transformação Burrows-Wheeler e codifica o resultado. Um bloco é autocontido, então o descompressor guarda um bloco por vez e nada mais — a mesma decisão que faz o bzip2 perder em taxa de compressão é a que o torna barato de desempacotar.
A penalidade de tamanho é real e sua escala depende inteiramente do conteúdo. Numa árvore de código-fonte, num corpus de documentos, em logs, o XZ vai ter encontrado bem mais do que o bzip2 consegue, e o BZ2 vai ficar visivelmente maior. É o preço da economia de memória.
Em outros pacotes a penalidade arredonda para quase nada. Se o XZ guarda fotografia, vídeo, áudio ou um dump de banco já comprimido, o compressor forte nunca tinha o que trabalhar; os dois formatos ficam essencialmente só embrulhando o dado. Olhe os dois números antes de se comprometer com qualquer coisa adiante.
É fácil presumir que o formato mais fraco é mais rápido em tudo, e não é o que acontece. XZ é lento para comprimir, porque buscar num dicionário de 64 MB é caro, e comparativamente rápido para descomprimir. Bzip2 é o contrário de um jeito que importa: desfazer uma transformação Burrows-Wheeler é computação de verdade, então bzip2 desempacota devagar.
Vale planejar em torno disso, porque isso parcialmente desfaz o motivo da conversão. Um aparelho restrito agora precisa de menos memória e mais tempo, e se ele também tiver um processador lento — o que aparelhos pequenos costumam ter —, a extração pode levar bem mais tempo do que o XZ levaria.
Os dois são compressores de um único fluxo e nenhum sabe o que é um arquivo. É por isso que os dois costumam ser encontrados com um TAR dentro. Esta conversão desempacota o tarball de dentro do XZ e escreve um novo antes de comprimir com bzip2.
Nenhum dos dois formatos registra um nome de arquivo original — gzip registra, esses dois não — então a extensão que você coloca no download é o único rótulo que o arquivo vai carregar. Chame de .tar.bz2.
Memória limitada é o destaque, e há uma consequência secundária que serve o mesmo leitor. Como os blocos do bzip2 são comprimidos independentemente, um arquivo danificado não perde necessariamente tudo depois do dano — ferramentas de recuperação conseguem achar os limites de bloco intactos e salvar o que sobreviveu.
Isso combina com os ambientes para os quais esta página foi escrita, onde armazenamento costuma ser flash barato, energia é cortada sem aviso, e raramente há uma segunda cópia por perto. Não é estratégia de backup e não deveria ser vendida como uma.
Se o motivo de sair do XZ é memória ou um binário ausente, gzip resolve os dois pelo menos tão bem e custa menos tempo. Precisa de uma janela de 32 KB — praticamente nada —, está presente em quase todo sistema que tem algum compressor, e descomprime bem mais rápido que bzip2 nos processadores lentos que esses aparelhos costumam ter.
Então o caso para bzip2 especificamente é estreito: a diferença de tamanho entre gzip e bzip2 genuinamente importa para sua transferência, e o tempo extra de descompressão é aceitável. Se não importa, gzip é o alvo melhor.
No nosso servidor, não no seu navegador. A maioria das ferramentas aqui roda no seu próprio aparelho e diz isso claramente; reempacotamento de arquivo compactado é uma das exceções, porque precisa do 7-Zip e do bzip2 como programas de verdade. O arquivo vai por conexão criptografada até um contêiner que os executa, e esse contêiner não tem acesso próprio à internet.
Cada tarefa recebe um diretório de trabalho num sistema de arquivos em memória, apagado assim que a tarefa termina, e qualquer tarefa ainda rodando depois de sessenta segundos é encerrada. O limite gratuito aceita 25 MB por arquivo enviado.
A única verificação que vale algo aqui é feita no destino. Copie o BZ2 para o aparelho ou contêiner que falhou no arquivo xz e extraia lá — não na sua própria estação, onde os dois formatos teriam funcionado.
Depois compare a listagem contra o original: tar tJf no XZ e tar tjf no BZ2 deveriam mostrar a mesma contagem e os mesmos caminhos. Este é um reempacotamento sem perdas, então uma diferença nunca é um arquivo danificado — é sempre estrutural.
| XZ | BZ2 | |
|---|---|---|
| Nome completo | Arquivo XZ | Arquivo Bzip2 |
| Extensão do arquivo | .xz | .bz2 |
| Tipo de mídia | application/x-xz | application/x-bzip2 |
| Compressão | Sem perdas — nada é descartado | Sem perdas — nada é descartado |
| Publicado pela primeira vez | 2009 | 1996 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Antigo, ainda lido em todo lugar |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | GZ, 7Z | GZ |
Nada é descartado. XZ e BZ2 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.
7-Zip e Keka leem tanto XZ quanto BZ2, então dá para comparar o resultado com o original sem um segundo programa.
BZ2 trabalha com 900 KB de cada vez, contra 8 MB de XZ: é 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.
BZ2 e de 1996. bzip2, 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. BZ2 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.
Nada é descartado. XZ e BZ2 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.