# Guia do Linux/Iniciante+Intermediário/Compactadores/tar
## tar

Na verdade o tar não é um compactador e sim um "arquivador" (ele junta vários arquivos em um só), mas pode ser usado em conjunto com um compactar (como o gzip ou zip) para armazena-los compactados. O tar também é muito usado para cópias de arquivos especiais ou dispositivos do sistema. É comum encontrar arquivos com a extensão .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro é um arquivo normal gerado pelo tar e todos os outros são arquivos gerados através tar junto com um programa de compactação (gzip (.gz), bzip2 (.bz2) e compress (.Z).
tar [opções] [arquivo-destino] [arquivos-origem]
Onde:

### arquivo-destino

    É o nome do arquivo de destino. Normalmente especificado com a extensão .tar caso seja usado somente o arquivamento ou .tar.gz/.tgz caso seja usada a compactação (usando a opção -z).

### arquivos-origem

    Especifica quais arquivos/diretórios serão compactados.

### -c, --create

    Cria um novo arquivo .tar

### -t, --list

    Lista o conteúdo de um arquivo .tar

### -u, --update

    Atualiza arquivos compactados no arquivo .tar

### -f, --file [HOST

    ]F
    Usa o arquivo especificado para gravação ou o dispositivo /dev/rmt0.

### -j, --bzip2

    Usa o programa bzip2 para processar os arquivos do tar

### -l, --one-file-system

    Não processa arquivos em um sistema de arquivos diferentes de onde o tar foi executado.

### -M, --multi-volume

    Cria/lista/descompacta arquivos em múltiplos volumes. O uso de arquivos em múltiplos volumes permite que uma grande cópia de arquivos que não cabe em um disquete, por exemplo, seja feita em mais de um disquete.

### -o

    Grava o arquivo no formato VT7 ao invés do ANSI.

### -O, --to-stdout

    Descompacta arquivos para a saí­da padrão ao invés de gravar em um arquivo.

### --remove-files

    Apaga os arquivos de origem após serem processados pelo tar.

### -R, --record-number

    Mostra o número de registros dentro de um arquivo tar em cada mensagem.

### --totals

    Mostra o total de bytes gravados com a opção --create.

### -v

    Mostra os nomes dos arquivos enquanto são processados.

### -V [NOME]

    Inclui um [NOME] no arquivo tar.

### -W, --verify

    Tenta verificar o arquivo gerado pelo tar após grava-lo.

### x

    Extrai arquivos gerados pelo tar

### -X [ARQUIVO]

    Tenta apagar o [ARQUIVO] dentro de um arquivo compactado .tar.

### -Z

    Usa o programa compress durante o processamento dos arquivos.

### -z

    Usa o programa gzip durante o processamento dos arquivos.

### --use-compress-program [PROGRAMA]

    Usa o [PROGRAMA] durante o processamento dos arquivos. Ele deve aceitar a opção -d.

### -[0-7][lmh]

    Especifica a unidade e sua densidade.
A extensão precisa ser especificada no arquivo de destino para a identificação correta:
* Arquivos gerados pelo tar precisam ter a extensão .tar
* Caso seja usada a opção -j para compactação, a extensão deverá ser .tar.bz2
* Caso seja usada a opção -z para compactação, a extensão deverá ser .tar.gz ou .tgz
* Caso seja usada a opção -Z para a compactação, a extensão deverá ser .tar.Z ou .tgZ
É importante saber qual qual o tipo de compactador usado durante a geração do arquivo .tar pois será necessário especificar a opção apropriada para descompacta-lo (para detalhes veja [#s-cpctd-extensoes Extensões de arquivos compactados, Seção 18.2]).
Exemplos:
* tar -cf index.txt.tar index.txt - Cria um arquivo chamado index.txt.tar que armazenará o arquivo index.txt. Você pode notar digitando ls -la que o arquivo index.txt foi somente arquivado (sem compactação), isto é útil para juntar diversos arquivos em um só.
* tar -xf index.txt.tar - Desarquiva o arquivo index.txt criado pelo comando acima.
* tar -czf index.txt.tar.gz index.txt - O mesmo que o exemplo de arquivamento anterior, só que agora é usado a opção -z (compactação através do programa gzip). Você agora pode notar digitando ls -la que o arquivo index.txt foi compactado e depois arquivado no arquivo index.txt.tar.gz (você também pode chama-lo de index.txt.tgz que também identifica um arquivo .tar compactado pelo gzip)
* tar -xzf index.txt.tar.gz - Descompacta e desarquiva o arquivo index.txt.tar.gz criado com o comando acima.
* gzip -dc index.tar.gz | tar -xf - - Faz o mesmo que o comando acima só que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.gz e envia a saí­da do arquivo descompactado para o tar que desarquivará o arquivo index.txt.
* tar -cjf index.txt.tar.bz2 index.txt - Arquiva o arquivo index.txt em index.txt.tar.bz2 compactando através do bzip2 (opção -j).
* tar -xjf index.txt.tar.bz2 - Descompacta e desarquiva o arquivo index.txt.tar.bz2 criado com o comando acima.
* bzip2 -dc index.txt.tar.bz2 | tar -xf - - Faz o mesmo que o comando acima só que de uma forma diferente: Primeiro descompacta o arquivo index.txt.tar.bz2 e envia a saí­da do arquivo descompactado para o tar que desarquivará o arquivo index.txt.
* tar -t index.txt.tar - Lista o conteúdo de um arquivo .tar.
* tar -tz index.txt.tar.gz - Lista o conteúdo de um arquivo .tar.gz.