Trabalhar com o terminal Linux exige dominar a manipulação de arquivos compactados. Se você já se deparou com extensões como .tar.gz, .tar.xz, .7z ou .bz2 e ficou em dúvida sobre qual comando utilizar para compactar ou extrair os dados, este guia completo vai resolver seu problema de vez.
No Linux, ferramentas como o
tar apenas juntam múltiplos arquivos em um único pacote (arquivamento). Já algoritmos como gzip, bzip2 e xz fazem a compressão (redução de tamanho). Por isso é tão comum ver extensões combinadas como .tar.gz!
Guia Rápido de Referência
Para quem busca agilidade, confira a tabela com os comandos mais comuns do dia a dia:
| Extensão | Comando para Compactar | Comando para Descompactar |
|---|---|---|
.tar.gz / .tgz |
tar -czvf arq.tar.gz pasta/ |
tar -xzvf arq.tar.gz |
.tar.bz2 / .tbz2 |
tar -cjvf arq.tar.bz2 pasta/ |
tar -xjvf arq.tar.bz2 |
.tar.xz |
tar -cJvf arq.tar.xz pasta/ |
tar -xJvf arq.tar.xz |
.zip |
zip -r arq.zip pasta/ |
unzip arq.zip |
.7z |
7z a arq.7z pasta/ |
7z x arq.7z |
.rar |
rar a arq.rar pasta/ |
unrar x arq.rar |
Detalhamento de cada formato
1. O utilitário TAR (Sem compressão)
Cria um único pacote sem reduzir o tamanho dos arquivos.
# Compactar (Arquivar):
tar -cvf arquivo.tar /caminho/da/pasta
# Descompactar:
tar -xvf arquivo.tar
2. Formatos GZIP (.gz, .tar.gz, .tgz)
É o formato mais tradicional no ecossistema Unix. Rápido e com boa taxa de compressão.
# Arquivo simples (.gz)
gzip arquivo.txt # Compacta (gera arquivo.txt.gz)
gunzip arquivo.txt.gz # Descompacta
# Tarball comprimido (.tar.gz ou .tgz)
tar -czvf arquivo.tar.gz pasta/ # Compactar
tar -xzvf arquivo.tar.gz # Descompactar
3. Formatos BZIP2 (.bz2, .tar.bz2, .tbz2)
Oferece uma taxa de compressão maior que o GZIP, porém consome um pouco mais de processamento.
# Arquivo simples (.bz2)
bzip2 arquivo.txt # Compacta (gera arquivo.txt.bz2)
bunzip2 arquivo.txt.bz2 # Descompacta
# Tarball comprimido (.tar.bz2 ou .tbz2)
tar -cjvf arquivo.tar.bz2 pasta/ # Compactar
tar -xjvf arquivo.tar.bz2 # Descompactar
4. Formatos XZ e LZMA (.xz, .lzma, .tar.xz)
Ideal para distribuição de código e arquivos grandes. Garante taxas de compressão altíssimas (usado no código-fonte do Kernel Linux).
# Arquivo simples (.xz e .lzma)
xz arquivo.txt # Compacta .xz
unxz arquivo.txt.xz # Descompacta .xz
lzma arquivo.txt # Compacta .lzma
unlzma arquivo.txt.lzma # Descompacta .lzma
# Tarball comprimido (.tar.xz)
tar -cJvf arquivo.tar.xz pasta/ # Compactar
tar -xJvf arquivo.tar.xz # Descompactar
5. Formato ZIP (.zip)
Muito utilizado para manter compatibilidade com o Windows.
# Compactar (o parâmetro -r compacta pastas recursivamente):
zip -r arquivo.zip pasta/
# Descompactar:
unzip arquivo.zip
6. Formato 7-Zip (.7z)
Excelente taxa de compressão e suporte a criptografia forte.
# Compactar:
7z a arquivo.7z pasta/
# Descompactar (mantendo a estrutura de pastas original):
7z x arquivo.7z
7. Formatos RAR e Unix Z (.rar e .Z)
Formatos menos comuns nativamente no Linux, mas frequentemente encontrados para download.
# Formato .rar
rar a arquivo.rar pasta/ # Compactar
unrar x arquivo.rar # Descompactar
# Formato antigo Unix (.Z)
compress arquivo.txt # Compacta
uncompress arquivo.Z # Descompacta
# Ou para arquivos .tar.Z:
tar -xZvf arquivo.tar.Z
Download e Extração Direta (Sem salvar em disco)
É possível realizar o download e a extração imediata de arquivos nos formatos tar, tar.gz e tar.bz2 diretamente via terminal, sem a necessidade de salvar o arquivo compactado no disco local. Isso economiza espaço em disco e acelera o processo.
Exemplos com `wget`:
wget http://example.com/archive.tar -O - | tar -x
wget http://example.com/archive.tar.gz -O - | tar -xz
wget http://example.com/archive.tar.bz2 -O - | tar -xj
A diretiva -O - indica que o comando wget deve enviar o conteúdo baixado para a saída padrão (stdout), que por sua vez é redirecionada através de um pipe (|) para o comando tar. Desta forma, em vez de ser gravado em disco, o arquivo é automaticamente expandido em tempo real.
Exemplos com `curl`:
Podemos obter o mesmo resultado utilizando o utilitário curl:
curl http://example.com/archive.tar | tar -x
curl http://example.com/archive.tar.gz | tar -xz
curl http://example.com/archive.tar.bz2 | tar -xj
A diretiva -x do comando tar, em ambos os casos, realiza a extração dos arquivos. As opções complementares (-z para arquivos .gz/gzip e -j para arquivos .bz2/bzip2) realizam a descompactação do fluxo de dados antes de expandir a estrutura do tar.
Alguns utilitários como
unzip, p7zip e unrar podem não vir instalados por padrão na sua distribuição. Caso algum comando falhe, instale os pacotes via terminal:sudo apt install zip unzip p7zip-full unrar xz-utils (Debian/Ubuntu) ousudo dnf install zip unzip p7zip p7zip-plugins unrar xz (Fedora/RHEL)
Dica Bônus: O truque definitivo com `tar`
Nas versões modernas do utilitário tar, você não precisa memorizar a letra do tipo de compressão (z, j, J) para extrair arquivos! O tar consegue identificar o algoritmo de compressão automaticamente.
Você pode descompactar qualquer pacote .tar.gz, .tar.bz2 ou .tar.xz usando simplesmente:
tar -xvf nome-do-arquivo.tar.*
Conclusão
Guardar essa referência vai te poupar bastante tempo no terminal. Para a maioria das rotinas de servidores e desenvolvimento no Linux, focar nos comandos tar e zip — somado às técnicas de transmissão direta via pipe — cobrirá praticamente todas as suas necessidades diárias.
Nenhum comentário:
Postar um comentário