Bóson Treinamentos em Ciência e Tecnologia

Arquivar e comprimir arquivos com comando tar no Linux

Como comprimir arquivos com tar no Linux

Arquivar e comprimir arquivos com comando tar no Linux

O utilitário tar no Linux é uma ferramenta extremamente útil e amplamente utilizada para empacotamento / arquivamento e compressão de arquivos e diretórios. A palavra “tar” vem de “Tape Archive“, pois historicamente o comando foi desenvolvido para fazer backups em fitas magnéticas.

O tar permite agrupar vários arquivos em um único arquivo, conhecido como arquivo tar ou tarball, que pode ser comprimido para economizar espaço.

Neste tutorial veremos como usar o comando tar para empacotar e comprimir arquivos e diretórios no Linux.

Sintaxe Básica do Comando tar

A sintaxe básica do comando tar é:

tar [opções] arquivo.tar [arquivos/diretórios]

Algumas das opções mais comuns incluem:

Como criar arquivos Tar

Para criar um arquivo tar, usamos a opção -c combinada com a opção -f para especificar o nome do arquivo. Vejamos alguns exemplos.

Exemplo 1: Criar um arquivo empacotado tar de nome vim.tar com o conteúdo do diretório /etc/vim

$ tar -cvf vim.tar /etc/vim/

Esse comando, portanto, cria um arquivo chamado vim.tar com o conteúdo do diretório /etc/vim/.

Exemplo 2: Criar um Arquivo tar Compactado com gzip

Vamos criar agora um arquivo empacotado semelhante ao exemplo anterior, porém compactando-o com o utilitário gzip. Para tal, basta acrescentar a opção -z ao comando (e não esqueça de acrescentar a extensão .gz ao arquivo): 

tar -czvf vim.tar.gz /etc/vim/

Aqui, o arquivo vim.tar.gz é criado e compactado com gzip. Podemos comparar os arquivos criados para ver seus respectivos tamanhos:

$ ls -l vim*

Exemplo 3: Criar um arquivo tar compactado com a ferramenta bzip2

(Não esqueça de alterar a extensão para .bz2).

$ tar -cjvf vim.tar.bz2 /etc/vim/

Este comando cria um arquivo .tar.bz2, usando bzip2. Verificamos os tamanhos dos arquivos criados para comparação na sequência:

$ ls -l vim*

Como extrair arquivos tar

Para extrair arquivos, usa-se a opção -x, e normalmente -v para ver o progresso.

Exemplo 1: Extrair o arquivo tar vim.tar

$ tar -xvf vim.tar
$ ls

Com esse comando extraímos o conteúdo de vim.tar no diretório atual.

Exemplo 2: Extrair um Arquivo tar compactado com gzip

$ tar -xzvf vim.tar.gz

Aqui, o conteúdo de vim.tar.gz é extraído e descompactado no diretório atual.

Exemplo 3: Extrair um arquivo tar para um diretório específico

Vamos extrair o conteúdo do pacote vim.tar para dentro do diretório Documentos do usuário atual:

$ tar -xvf vim.tar -C ~/Documentos/
$ ls ~/Documentos

Com esse comando o conteúdo do arquivo vim.tar será extraído para o diretório especificado.

Exemplo 4: Extrair um arquivo específico de um pacote tar

Podemos também extrair um ou mais arquivos específicos de um pacote tar, sem no entanto extrair o conteúdo completo do pacote. Para tal usamos a opção –extract como segue:

$ tar -vf arquivo.tar --extract arquivo1 arquivo2 ...

Exemplo: Suponha um arquivo backup.tar que contenha diversos arquivos, entre eles um arquivo de nome ls.txt. Para extrair apenas esse arquivo no diretório atual executamos:

$ tar -vf backup.tar --extract ls.txt

Como listar o conteúdo de um arquivo tar

O que há dentro do arquivo tar criado? A opção -t permite ver o conteúdo de um arquivo tar sem extraí-lo.

$ tar -tvf vim.tar

Esse comando exibe uma lista de arquivos e diretórios dentro de vim.tar.

Como adicionar mais arquivos a um arquivo tar existente

O tar também permite adicionar mais arquivos a um arquivo tar existente usando a opção -r. Vamos adicionar o arquivo pwd.dat ao arquivo vim criado anteriormente, e depois visualizar seu conteúdo atualizado:

$ pwd > pwd.dat
$ tar -rvf vim.tar pwd.dat
$ tar -tvf vim.tar

Como remover arquivos de um arquivo tar

Para excluir arquivos de dentro de um pacote tar criado, podemos usar a opção –delete seguida do nome do arquivo ou arquivos a excluir. Por exemplo, vamos remover o arquivo pwd.dat de dentro de vim.tar:

$ tar -vf vim.tar --delete pwd.dat
$ tar -tvf vim.tar

É isso aí! Vimos vários exemplos de uso do tar, e agora vamos fazer mais alguns exercícios de reforço para fixar o aprendizado da ferramenta.

Exercícios com resolução

A seguir temos alguns exercícios para treinarmos o uso do comando tar no Linux.

Exercício 1: Criar um arquivo tar com dois diretórios e compactá-lo com gzip

Instrução: Use o comando tar para criar um arquivo chamado backup.tar.gz que inclua os diretórios /home/fabio/Documentos e /home/fabio/Imagens, compactando-o com gzip.

Solução:

tar -czvf backup.tar.gz /home/fabio/Documentos /home/fabio/Imagens

Esse comando cria um arquivo chamado backup.tar.gz contendo ambos os diretórios. Com o comando ls podemos ver o arquivo criado no diretório atual:

$ ls -l

Exercício 2: Extrair um Arquivo tar para um diretório específico

Instrução: Extraia o conteúdo do arquivo backup.tar.gz para o diretório /tmp/backup.

Solução:

$ mkdir /tmp/backup
$ tar -xzvf backup.tar.gz -C /tmp/backup/
$ tree /tmp/backup

Exercício 3: Listar o conteúdo de um arquivo compactado sem extraí-lo

Devemos listar todos os arquivos e diretórios dentro de backup.tar.gz sem extrair o arquivo.

Solução:

$ tar -tzvf backup.tar.gz

Exercício 4: Adicionar um arquivo de texto a um arquivo tar existente

Instrução: Adicione o arquivo /home/fabio/ls.txt ao arquivo backup.tar e depois visualize o conteúdo do arquivo tar.

Lembre-se de criar o arquivo sem compactação .tar antes, pois não é possível atualizar o conteúdo de arquivos compactados. Suponha também que você já esteja no diretório do usuário, por exemplo /home/fabio/.

Solução:

ls > ls.txt
tar -cvf backup.tar ./Documentos ./Imagens
tar -rvf backup.tar /home/fabio/ls.txt
tar -tvf backup.tar.gz

Conclusão

O tar é uma ferramenta essencial para manipulação de arquivos no Linux, permitindo arquivar e compactar grandes volumes de dados. Ele é amplamente utilizado para backup, transferência e armazenamento de dados em uma estrutura organizada e eficiente, e por conta disso é essencial prender a usar essa ferramenta de forma adequada.

Sair da versão mobile