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ção | Nome | Função |
|---|---|---|
| c | create | Cria um novo arquivo .tar |
| x | extract | Extrai arquivos de um arquivo .tar |
| v | verbose | Mostra os arquivos sendo processados (modo verboso) |
| f | file | Informa o nome do arquivo a ser criado ou lido |
| z | gzip | Compacta ou descompacta usando gzip (.tar.gz) |
| j | bzip2 | Compacta ou descompacta usando bzip2 (.tar.bz2) |
| J | xz | Compacta ou descompacta usando xz (.tar.xz) |
| t | list | Lista o conteúdo de um arquivo .tar |
| C | directory | Define 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 terminaltar --help→ Lista de opções rápida
Pronto! Com isso você domina o tar no dia a dia!
