Como Usar o Comando tar - Compactar, Extrair e Evitar Erros

Como Usar o Comando tar - Compactar, Extrair e Evitar Erros

O que voce vai aprender

  • Como compactar, extrair e listar conteudo com tar
  • Entender as diferencas entre .tar.gz / .tgz / .tar
  • Como evitar acidentes comuns (extrair em locais errados, sobrescrever, problemas de caminho)

Resumo Rapido

Comece com estes comandos - eles cobrirao a maioria dos casos:

  • Criar (gzip): tar -czf archive.tar.gz DIR/
  • Extrair: tar -xzf archive.tar.gz
  • Listar conteudo: tar -tzf archive.tar.gz
  • Especificar destino: tar -xzf archive.tar.gz -C /path/to/dir

Pre-requisitos

  • SO: Ubuntu
  • Shell: bash
  • Permissoes: Usuario regular (use sudo quando necessario)

1. Visao geral dos formatos de arquivo tar

Conclusao: Formatos: .tar simples, gzip .tar.gz/.tgz, alem de variantes bzip2 e xz.

  • .tar: Arquivos agrupados (sem compactacao)
  • .tar.gz / .tgz: Agrupados com tar, compactados com gzip
  • .tar.bz2: Agrupados com tar, compactados com bzip2
  • .tar.xz: Agrupados com tar, compactados com xz

Mais comumente vistos: .tar.gz / .tgz. Comece com estes.

2. Criando arquivos (compactacao)

Conclusao: Crie um arquivo gzip com tar -czf archive.tar.gz DIR/; multiplas entradas funcionam.

2-1. Criar .tar.gz de um diretorio (basico)

$ tar -czf archive.tar.gz DIR/
  • c: criar
  • z: compactacao gzip
  • f: especificar nome do arquivo (obrigatorio - sem ele, comportamento inesperado pode ocorrer)

2-2. Agrupar multiplos arquivos/diretorios

$ tar -czf archive.tar.gz DIR1/ DIR2/ file.txt

3. Extraindo arquivos

Conclusao: Extraia com tar -xzf archive.tar.gz; adicione -C para definir um destino seguro.

3-1. Extrair no diretorio atual (basico)

$ tar -xzf archive.tar.gz
  • x: extrair
  • z: gzip
  • f: especificar arquivo

3-2. Especificar diretorio de destino (recomendado para seguranca)

$ tar -xzf archive.tar.gz -C /path/to/dir

Ate se sentir confortavel, sempre use -C para evitar acidentes de extracao.

4. Listando conteudo (sempre verifique antes de extrair)

Conclusao: Execute tar -tzf archive.tar.gz para inspecionar o conteudo antes de extrair com seguranca.

4-1. Listar todo o conteudo (.tar.gz)

$ tar -tzf archive.tar.gz

4-2. Ver apenas o inicio (para listas longas)

$ tar -tzf archive.tar.gz | head

5. Acidentes comuns e prevencao (mais importante)

Conclusao: Local errado, caminhos absolutos, sobrescrita e espalhamento sao acidentes comuns.

Acidente A: Extraindo no local errado

Causas:

  • Nao saber seu diretorio atual
  • Nao usar a flag -C

Prevencao:

  1. Verifique o diretorio atual antes de extrair: pwd
  2. Sempre especifique o destino com -C
$ pwd
$ tar -xzf archive.tar.gz -C /tmp

Acidente B: Arquivo contem caminhos absolutos (ex.: comeca com /)

Perigo:

  • Caminhos como /etc/... sao caminhos absolutos
  • A extracao pode sobrescrever arquivos do sistema

Prevencao:

  • Verifique os caminhos com tar -tzf antes de extrair
  • Quando incerto, extraia para um local seguro como /tmp primeiro
$ mkdir -p /tmp/tar-test
$ tar -xzf archive.tar.gz -C /tmp/tar-test

Acidente C: Sobrescrevendo arquivos existentes

Prevencao:

  • Nao extraia diretamente em diretorios de producao
  • Primeiro extraia para um diretorio de trabalho vazio e verifique o conteudo
$ mkdir -p ~/work/extract-test
$ tar -xzf archive.tar.gz -C ~/work/extract-test

Acidente D: Arquivos espalhados em vez de um unico diretorio

Dependendo de como o arquivo foi criado, os arquivos podem nao estar em um unico diretorio.

Boa pratica (ao criar):

  • Navegue para o diretorio pai do diretorio que deseja arquivar
  • Exemplo: Para criar DIR/ como um unico diretorio
$ cd /path/to
$ tar -czf DIR.tar.gz DIR/

6. Outros formatos (.tar / .tar.bz2 / .tar.xz)

Conclusao: tar simples usa -cf/-xf, bzip2 usa -xjf, e xz usa -xJf.

Use quando necessario:

6-1. .tar (sem compactacao)

Criar:

$ tar -cf archive.tar DIR/

Extrair:

$ tar -xf archive.tar

6-2. .tar.bz2

Extrair:

$ tar -xjf archive.tar.bz2

6-3. .tar.xz

Extrair:

$ tar -xJf archive.tar.xz

Verificacao

Conclusao: Apos extrair, execute ls -la para confirmar que os arquivos foram para onde esperado.

Apos a extracao, verifique se os arquivos estao no local esperado:

$ ls -la

Proximas leituras