Guia Completo do Comando tar no Linux

O comando tar (Tape Archive) é utilizado para arquivar e compactar arquivos no Linux. Ele permite agrupar vários arquivos em um só e, opcionalmente, aplicar compressão (como gzip ou bzip2).


Sintaxe Básica

tar [opções] arquivo.tar [arquivos ou pastas]

Principais Opções

OpçãoNomeFunção
ccreateCria um novo arquivo .tar
xextractExtrai arquivos de um arquivo .tar
vverboseMostra os arquivos sendo processados (modo verboso)
ffileInforma o nome do arquivo a ser criado ou lido
zgzipCompacta ou descompacta usando gzip (.tar.gz)
jbzip2Compacta ou descompacta usando bzip2 (.tar.bz2)
JxzCompacta ou descompacta usando xz (.tar.xz)
tlistLista o conteúdo de um arquivo .tar
CdirectoryDefine um diretório de destino para extrair arquivos
–remove-files Remove os arquivos originais após adicioná-los ao .tar

Exemplos Práticos

1. Compactar uma pasta

tar -czvf backup.tar.gz pasta/
  • Cria um .tar.gz com a pasta

2. Descompactar um .tar.gz

tar -xzvf backup.tar.gz
  • Extrai o conteúdo no diretório atual

3. Compactar com .bz2

tar -cjvf backup.tar.bz2 pasta/

4. Listar arquivos dentro de um .tar.gz

tar -tzvf backup.tar.gz

5. Extrair em um diretório específico

tar -xzvf backup.tar.gz -C /caminho/do/destino

6. Criar .tar sem compressão

tar -cvf arquivo.tar pasta/

7. Adicionar arquivos a um .tar existente

tar -rvf arquivo.tar novo_arquivo.txt

8. Remover arquivos originais após criar o .tar

tar -czvf backup.tar.gz pasta/ --remove-files

Dicas

  • Arquivos .tar não são compactados por padrão. Use z, j, ou J para compressão.
  • Pode usar * para pegar todos os arquivos de uma pasta: tar -czvf tudo.tar.gz *
  • Para scripts de backup, use data/hora: tar -czf backup-$(date +%F).tar.gz pasta/

Opções Avançadas

🔁 Compactar arquivos modificados nas últimas 24h

find pasta/ -type f -mtime -1 | tar -czvf backup_incremental.tar.gz -T -

Faz um backup incremental, ideal para automações diárias.

🧪 Testar integridade de um arquivo .tar.gz

gunzip -c backup.tar.gz | tar -tvf -

Lista os arquivos e valida o .gz sem extrair nada.

🔐 Compactar com senha (usando gpg)

tar -czvf - pasta/ | gpg -c > backup.tar.gz.gpg

Gera um .tar.gz criptografado com senha.

Para descriptografar:

gpg -d backup.tar.gz.gpg | tar -xzvf -

📂 Extrair apenas um arquivo específico

tar -xzvf backup.tar.gz caminho/do/arquivo.txt

🚫 Excluir arquivos durante a compactação

tar --exclude='*.log' -czvf backup.tar.gz pasta/

Ignora arquivos .log na criação do backup.

🧰 Script de backup automático com data

tar -czf /backups/backup-$(date +%F).tar.gz /var/www/site

Salva com nome como backup-2025-04-08.tar.gz


Referências

  • man tar → Documentação oficial no terminal
  • tar --help → Lista de opções rápida

Pronto! Com isso você domina o tar no dia a dia!

Voltar ao Blog