Usando o Tar no linux de forma descomplicada

Trabalhando com arquivos TAR no Linux

O Programa tar é amplamente utilizado para distribuição de aplicativos e arquivos. Ele é um sistema de arquivamento de múltiplos arquivos em um só. Funciona tanto nos sistemas Linux (nativamente) e Windows (com programas como o 7-zip).

Além de agrupar múltiplos arquivos em um só, ele pode ser utilizado com o gzip ou o bzip, conhecidos compactadores de arquivos. Usando em conjunto com um dos compactadores temos um ótimo resultado, encapsulando vários arquivos (ou diretórios completos) em um único arquivo, mas ocupando menos espaço que o convencional.

Como dito anteriormente, ele serve muito para distribuição de aplicativos, mas também é muito utilizado para cópias de segurança (backup)

tar nativamente lê e grava os tipos .tar.gz.tar.bz2 que são formatos de arquivos compactados com gzip bzip, respectivamente.

Aqui trataremos do TAR no Linux em uso diretamente pelo Terminal.

Parâmetros do programa TAR

Tipos de compactação

  • z – Utiliza o gzip
  • j – Utiliza o bzip

Operações

  • x – Extrai arquivos de um arquivo tar
  • c – Cria um arquivo tar
  • r – Acrescenta um (ou mais) arquivo(s) a um arquivo tar existente
  • t – Exibe conteúdo de um arquivo tar

Opções diversas

  • v – Exibe as operações que estão sendo feitas
  • f – Especifica o arquivo tara ser utilizado
  • M – Utilizado quando trabalhar com múltiplos arquivos
  • C – Especifica o diretório a ser armazenado
  • w – Trabalha com máscaras (ex: *.png)

Como utilizar ?

  • Estes parâmetros tem que serem utilizados com o sinal de menos na frente (-)
  • Usar somente um tipo de Compactação
  • Usar somente um tipo de Operação
  • As opções diversas podem ser utilizadas de acordo com a necessidade, mas a opção f terá que ser a última
  • Poderá colocar todas os parâmetros de uma só vez (ex: tar -zcvf) ou dividido (ex: tar -zcv -f)

 

Abaixo exemplos para facilitar sua vida ao utilizar o tar

1. Extrair um arquivo .tar.gz

$ tar -xvzf aquivo.tar.gz

Este comando extrairá todo o conteúdo em uma nova pasta que ele criará com o nome do arquivo. Importante você saber que este comando é o mais utilizado no Linux então é bom decorá-lo 😉

x - Extrai o arquivo
v - Verbose - mostra os nomes dos arquivos que estão sendo extraídos
z - Arquivo gzip
f - Usa o arquivo especificado a seguir

2. Extrair um arquivo .tar.bz2

$ tar -xvjf arquivo.tar.bz2

Este comando é igual ao anterior, só mudando o z para o j pois é um arquivo .tar.bz2b

3. Extrair para um determinado diretório

$ tar -xvzf aquivo.tar.gz -C /home/teste/

Este comando só incluiu a opção -C que é para determinar um diretório de destino

4. Extrair um único arquivo

$ tar -xzf arquivo.tar.gz "teste.txt"

Desta forma ele somente extrairá o arquivo “teste.txt”

$ tar -xzf arquivo.tar.gz "teste.txt" "teste2.txt"

E com um segundo parâmetro, ele extrairá somente os dois arquivos.

5. Extraindo múltiplos arquivos utilizando máscaras

$ tar -xzf arquivo.tar.gz --wilcards "*.txt"

Os wilcards são máscaras, portanto ele extrairá somente os arquivos com extensão txt

6. Listando e procurando arquivos dentro do arquivo tar

Ao invés da opção x usaremos a opção t

$ tar -tzf arquivo.tar.gz
t - Lista os aquivos

Para localizar um determinado arquivo dentro do arquivo tar utilizaremos o | (pipe) juntamente com o grep

$ tar -tvzf arquivo.tar.gz | grep arquivo.txt

Desta forma ele procurará o arquivo arquivo.txt dentro do arquivo.tar.gz

7. Criando arquivos tar

Agora, para criar os arquivos tar.gz utilizamos a opção c ao invés da x ou t

$ tar -cvzf arquivo.tar.gz /home/teste/
c - Cria aquivo tar

Este comando criará o arquivo arquivo.tar.gz no diretório atual com todo o conteúdo da pasta /home/teste

Para criar um bzip ou seja um .tar.bz2

$ tar -cvjf arquivo.tar.bz2 /home/teste

Este comando cria o arquivo com o mesmo conteúdo do anterior, porém em outro formato de compressão.

Para criar um arquivo somente tar sem a compressão do gzip ou do bzip.

Só omitimos o formato, ou seja o j ou o z

$ tar -cvf arquivo.tar /home/teste

8. Adicionando arquivos a um arquivo tar já existente

$ tar -rvf arquivo.tar arquivo2.txt

Isto incluirá o arquivo arquivo2.txt no arquivo.tar.

Importante saber que com o comando tar você só pode adicionar arquivos a um tar existente, não poderá ser feito em um arquivo .tar.gz ou .tar.bz2. Se for fazer isto, terá que descompactar antes o arquivo.

$ gunzip arquivo.tar.gz
$ tar -rvf arquivo.tar arquivo2.txt
$gzip arquivo.tar

Desta forma, descompactamos com o gunzip o arquivo arquivo.tar.gz e ele criará o arquivo.gz nele sim podemos adicionar um arquivo (como no exemplo o arquivo2.txt) e depois fazemos o processo inverso, compactamos com o gzip e ele criará o arquivo.tar.gz.

9. Criando um backup simples com o tar

Podemos criar uma rotina de backup simples colocando no crontab (por exemplo) um comando mais ou menos assim:

$ tar -cvz -f backup-$(date +%Y%m%d).tar.gz /home/arquivos/

Desta forma será criado um arquivo backup-data.tar.gz com uma compressão muito boa, seus arquivos estão seguros.

10. Fazendo uma verificação quando criar seus arquivos tar

$ tar -cvzw -f arquivo.tar.gz /home/teste/
/home/teste/arq1
Verificando /home/teste/arq1

Isto fará com que os arquivos sejam verificados evitando alguma falha na cópia ou mesmo falha em disco.

Finalizando

Lembrando que estes são comandos básicos do tar, podendo você utilizar um com outro, mas para maiores informações na sua própria tela de terminal você pode chamar o help (ou manual) com o comando man tar.

Espero que tenham gostado.

Abraços

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *