No inicio desse mês de abril, boa parte da turma de tecnologia soube da notícia do nosso amigo Andres Freud que salvou o mundo ao descobrir código malicioso nas últimas versões do xz utils - CVE-2024-3094.
Aos usuários Linux, em especial novatos, apresento este algoritmo de compressão e como utilizá-lo com tar
.
Mas antes de soltar tudo que é comando, recomendo entender detalhes dos comandos aqui utilizados acessando o site explainshell.com.
explainshell.com
É um site que analisa comandos Unix e Linux. Ele desmembra cada parte do comando e explica com detalhes o que cada parte faz, fornecendo descrição dos argumentos, opções e operações do comando. É uma excelente ferramenta de consulta para compreender e aprender sobre o funcionamento desses comandos.
Compressão de dados
Segundo o material do Linux Essentials da LPI, a compressão é usada para reduzir a quantidade de espaço que um conjunto específico de dados consome. Em geral, recorremos a ela para reduzir a quantidade de espaço necessária para armazenar um arquivo.
xz
xz é um utilitário de compactação de dados de alta taxa de compressão, que geralmente é usado em sistemas Unix e Linux para compactar arquivos e economizar espaço em disco. Ele utiliza o algoritmo LZMA2 para compressão, que é conhecido por sua eficiência em termos de taxa de compressão.
Comparando com o gz o xz tem maior uso de memória.
Compactando
xz meu_arquivo
# A opção -k mantém o arquivo original intacto
xz -k meu_arquivo
Descompactando
xz -d meu_arquivo
# A opção -d mantém o arquivo compactado original
xz -dk meu_arquivo
# ou
unxz meu_arquivo
Níveis de compressão
O xz oferece diferentes níveis de compressão, que variam de 0 a 9, sendo 0 o nível de compressão mais rápido, mas com menor taxa de compressão, e 9 o mais lento, mas com a maior taxa de compressão. O nível de compressão padrão é 6.
xz -9 meu_arquivo
Tar (Tape archive)
O Tar não é um utilitário de compressão por si só, ele apenas agrupa arquivos em um único arquivo, sem comprimi-los. Para compactar arquivos usando tar é necessário combiná-lo com utilitários de compressão como xz e gzip.
Uma boa vantagem em usar o tar é a preservação dos metadados, isto é, preservar as permissões de arquivos e timestamps por exemplo.
Sysadmins usam o tar para criar backups de arquivos e diretórios. Esses backups podem ser usados para restaurar sistemas em caso de falha ou para migrar dados para outro servidor.
Desenvolvedores frequentemente empacotam seus aplicativos e bibliotecas em arquivos tar para distribuição. Isso é comum em projetos de software de código aberto, onde fornecem uma versão compactada do código-fonte para facilitar o download e a instalação.
Criar um arquivo tar com algortimo de compressão [.xz, .gz]
tar com xz: meu_arquivo.tar.xz
tar com gz: meu_arquivo.tar.gz
O que acontece primeiro é o processo de empacotamento dos arquivos no formato .tar
e depois a compactação no formato do algoritmo de compressão utilizado.
A seguir como compactar, descompactar e listar
Compactar, Descompactar e Listar
xz
# Compactar
tar -cJvf meus_pdfs.tar.xz meus_pdfs/
# ou compactar usando nível de compressão
tar -cf - *.pdf | xz -7 > meus_pdfs.tar.xz
# Descompactar
tar -xJvf meus_pdfs.tar.xz
# ou
tar -xJvf meus_pdfs.tar.xz -C diretorio_novo/
# Listar arquivos
tar -tJvf meus_pdfs.tar.xz
gzip
# Compactar
tar -czvf meus_pdfs.tar.gz meus_pdfs/
# Descompactar
tar -xvzf meus_pdfs.tar.gz
# Listar arquivos
tar -tvf meus_pdfs.tar.gz
Essa postagem pode servir como um guia para uso dos comandos que permitem compressão de dados no Linux, lembre-se de consultar sobre os comandos no manual (man
) ou no explainshell.
Top comments (0)