3.1 — Empacotando arquivos: tar, gzip, bzip2, zipTópico 3: As maravilhas da linha de comandopeso 2
O que você precisa entender
Empacotar (juntar vários arquivos em um só) é diferente de compactar (reduzir o tamanho). O tar empacota; gzip/bzip2 compactam. Muita gente confunde os dois.
tar(tape archive): junta arquivos/pastas em um único arquivo.tar— por si só, NÃO compacta.gzip: compacta um arquivo (gera.gz), rápido, compressão razoável.bzip2: compacta melhor que gzip mas é mais lento (gera.bz2).xz: compacta ainda melhor que bzip2, mas mais lento ainda (gera.xz).zip: empacota E compacta ao mesmo tempo (formato mais usado no Windows também).
Na prática, o tar tem opções pra compactar direto (-z pra gzip, -j pra bzip2, -J pra xz), então você raramente roda gzip separado.
Opções do tar (decore essas — são as mais cobradas)
| Opção | Significado |
|---|---|
-c |
create (criar um novo arquivo tar) |
-x |
extract (extrair) |
-t |
list (listar conteúdo sem extrair) |
-v |
verbose (mostra o que está fazendo) |
-f arquivo |
especifica o nome do arquivo (quase sempre necessário, e vem por último) |
-z |
usa compressão gzip (.tar.gz / .tgz) |
-j |
usa compressão bzip2 (.tar.bz2) |
-J |
usa compressão xz (.tar.xz) |
Combinação clássica: tar -czvf (criar + gzip + verbose + arquivo) e tar -xzvf (extrair + gzip + verbose + arquivo).
Comandos para testar
# 1. Criar uma pasta de teste com arquivos
mkdir -p ~/pacote-teste && touch ~/pacote-teste/a.txt ~/pacote-teste/b.txt
# 2. Empacotar E compactar com gzip
tar -czvf teste.tar.gz ~/pacote-teste
# 3. Listar o conteúdo SEM extrair
tar -tvf teste.tar.gz
# 4. Extrair o conteúdo
tar -xzvf teste.tar.gz -C /tmp
# 5. Compactar um único arquivo com gzip (sem tar)
gzip -k ~/pacote-teste/a.txt # -k mantém o original também
Zip (formato separado, comandos próprios)
# Criar um .zip
zip -r pacote.zip ~/pacote-teste
# Listar conteúdo de um .zip
unzip -l pacote.zip
# Extrair um .zip
unzip pacote.zip -d /tmp/destino
📌 Exercício prático
Crie 3 arquivos de texto numa pasta ~/backup-teste. Empacote e compacte tudo em backup.tar.gz usando gzip. Depois, sem extrair, liste o conteúdo do arquivo (tar -tvf). Por fim, extraia numa pasta diferente e confira que os 3 arquivos vieram junto.