user@lpi:~$ linux-essentials
Início / Tópico 3 · As maravilhas da linha de comando / 3.1

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.