Linux / Comando bzip2: comprimir arquivos e conferir a recuperação
O comando bzip2 comprime arquivos no formato .bz2. Por padrão, uma compressão bem-sucedida substitui o arquivo de entrada pelo resultado comprimido; use -k para manter o original ou -c para enviar o resultado à saída padrão e escolher outro nome.
Com nomes de arquivos como argumentos, bzip2 gera um resultado para cada entrada. Ele não empacota uma árvore de diretórios em um único arquivo: para essa tarefa, combine a compressão com o comando tar, por exemplo usando sua opção -j para bzip2.
Sintaxe e preparação
bzip2 [opções] [arquivos...]
Essa linha é um modelo de sintaxe, não um comando para copiar literalmente. Substitua os trechos entre colchetes pelos argumentos necessários e consulte man bzip2 na máquina em que trabalhará; opções semelhantes às do gzip não garantem que todos os detalhes sejam iguais.
Prepare uma cópia dos dados em uma pasta separada, confirme o diretório atual e confira se os nomes de saída estão livres. Nos exemplos, data.csv é o arquivo de entrada já existente; data.csv.bz2 e data-copy.csv.bz2 devem ser nomes novos. Se o conteúdo estiver sendo alterado por outro programa, obtenha uma cópia consistente antes de comprimi-lo: a compressão não resolve essa consistência por conta própria.
Preservar a entrada, escolher o nome e testar
Manter o original: -k cria data.csv.bz2 e conserva data.csv. Isso permite comparar a recuperação com a entrada e manter uma cópia utilizável sem descompressão.
bzip2 -k data.csv
Escolher outro nome: -c escreve o fluxo comprimido na saída padrão, mantendo a entrada. O shell recebe esse fluxo pelo operador > e o grava em data-copy.csv.bz2.
bzip2 -c data.csv > data-copy.csv.bz2
O redirecionamento é feito pelo shell. Mesmo que bzip2 normalmente recuse uma saída existente quando ele próprio cria o arquivo, > pode esvaziar uma saída antes de bzip2 verificar a entrada. Use um nome novo, diferente da entrada, e confira o erro e o código de saída; uma entrada ausente ainda pode deixar um arquivo de saída vazio.
Conferir o fluxo comprimido: -t realiza uma descompressão de teste e descarta os dados produzidos, sem gravar um novo arquivo descomprimido no disco. A entrada comprimida é mantida.
bzip2 -t data.csv.bz2
Uma verificação bem-sucedida normalmente termina sem texto. Na implementação descrita pelo manual oficial, zero indica término normal, um indica problema de ambiente, como arquivo ausente ou erro de entrada e saída, dois indica dados comprimidos corrompidos e três indica erro interno de consistência do programa. Leia as mensagens e confira o código imediatamente após a operação; o sucesso de um comando posterior não substitui essa verificação.
Comparar a recuperação com o original
Em uma pasta de teste, confirme que note.txt e note.txt.bz2 ainda não existem. Prepare a entrada com printf 'hello\n' > note.txt: ela terá seis bytes, a palavra hello seguida de uma quebra de linha. Execute então:
bzip2 -c note.txt > note.txt.bz2
bzip2 -t note.txt.bz2
ls note.txt*
Os nomes esperados são os seguintes. A disposição em colunas é apenas ilustrativa; o terminal ou uma saída capturada pode mostrar um nome por linha.
note.txt note.txt.bz2
O arquivo note.txt continua presente porque a compressão usou -c. A presença dos dois nomes não demonstra, sozinha, que a cópia está correta. Para recuperar sem substituir a entrada, escolha outro nome livre e execute bzip2 -dc note.txt.bz2 > restored-note.txt; depois compare restored-note.txt com note.txt usando, por exemplo, cmp note.txt restored-note.txt. Em arquivos iguais, cmp normalmente não imprime nada e retorna zero; uma diferença retorna um.
- Confirme a entrada e reserve nomes novos para a compressão e a recuperação de teste.
- Comprima com
-kou-cse precisar preservar a entrada e confira o término da operação. - Execute
bzip2 -tcom o nome completo do arquivo comprimido e verifique seu diagnóstico e código de saída. - Descomprima uma cópia em outro destino e compare o conteúdo recuperado com a referência. Mantenha também um backup independente para dados importantes.
O formato usa verificações de redundância cíclica de 32 bits, chamadas CRC, para detectar corrupção durante a descompressão. Isso não autentica quem forneceu os dados nem prova que eles correspondem à versão que você esperava. Quando a procedência importar, compare um resumo criptográfico ou uma assinatura com uma referência obtida por um meio confiável.
Opções e tamanho dos blocos
| Opção | Finalidade e condição |
|---|---|
-k |
Mantém o arquivo de entrada durante a compressão ou descompressão. |
-c |
Escreve na saída padrão e conserva a entrada. Confira separadamente o destino escolhido pelo shell. |
-t |
Testa os dados comprimidos sem gravar a saída descomprimida no disco. |
-1 ... -9 |
Seleciona blocos de 100.000 a 900.000 bytes durante a compressão; -9 é o padrão. O tamanho afeta a compressão e a memória necessária. |
-v |
Mostra informações detalhadas do processamento, como a proporção de compressão. |
Os números de -1 a -9 escolhem o tamanho dos blocos; não são uma promessa de uma proporção fixa nem devem ser interpretados como os mesmos controles de outro compressor. Blocos maiores podem melhorar a compressão, mas aumentam a necessidade de memória e têm ganhos que dependem dos dados. Na descompressão, o programa lê o tamanho no cabeçalho; essas opções numéricas não o alteram. Se precisar escolher um valor, compare o tamanho obtido e os recursos disponíveis com seus próprios arquivos, mantendo as demais condições iguais.
Sobrescrita, arquivos pequenos e limites
Ao usar a compressão padrão sem -k ou -c, a entrada é removida depois da compressão bem-sucedida. Bzip2 normalmente não sobrescreve um arquivo de saída existente, mas -f permite forçar essa substituição. Antes de usar força, confira o caminho, preserve o que já existe ou escolha outro nome; -k conserva a entrada, não uma saída antiga que você destruiu.
Um arquivo muito pequeno ou pouco compressível pode ficar maior depois da compressão. O custo da estrutura do formato não desaparece só porque o conteúdo é curto. A compressão também não é criptografia: um .bz2 não protege dados confidenciais contra quem consiga descomprimi-lo.
Combinar fluxos comprimidos não cria um pacote com índice de nomes e estrutura de pastas para restauração independente. Para uma árvore de diretórios, use tar e confira seus membros e o destino de extração. Preserve o arquivo comprimido original quando houver erro; detectar corrupção não significa reparar os dados nem garantir uma recuperação completa.
Na verificação de 29 de outubro de 2026 com bzip2 1.0.8, Bash 5.3.9 e tar 1.35 do Git for Windows, os exemplos de -k, -c e -t funcionaram com arquivos controlados. As duas saídas de data.csv recuperaram exatamente os bytes de entrada. O arquivo note.txt permaneceu com seis bytes e sua versão comprimida tinha 42 bytes; a recuperação para outro nome também foi idêntica. A listagem capturada mostrou os dois nomes em linhas separadas.
Em verificações adicionais, a compressão padrão removeu a entrada de teste, uma saída existente foi preservada quando houve recusa sem força e um CRC alterado fez -t retornar dois. Uma entrada ausente com redirecionamento deixou vazia uma saída descartável. As opções -1 e -9 produziram cabeçalhos com seus tamanhos de bloco e permitiram recuperar os mesmos dados. Esses testes usaram arquivos próprios no Windows; não mediram desempenho nem verificaram permissões nativas do Linux ou todos os metadados.
Pergunta frequente
Posso comprimir um diretório inteiro com bzip2 data/?
Bzip2 não transforma diretamente o diretório em um pacote único. Use, por exemplo, tar -cjf data.tar.bz2 data/: tar reúne a estrutura e chama bzip2 para comprimi-la. Confirme que data.tar.bz2 é um nome livre antes de criar; para conferir os membros, use tar -tjf data.tar.bz2. O guia do tar ligado na introdução explica os cuidados com criação e extração.
Documentação oficial
O manual oficial do bzip2 descreve as opções, os códigos de retorno, o tamanho dos blocos e as exigências de memória. Consulte também o manual da versão instalada para aplicar essas condições ao seu ambiente.




