Arquivar e comprimir arquivos com comando 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:
- -c : Cria um novo arquivo tar.
- -x : Extrai os arquivos de um arquivo tar.
- -t : Lista o conteúdo de um arquivo tar.
- -v : Mostra o processo detalhado (verbose) enquanto o comando é executado.
- -f : Especifica o nome do arquivo tar.
- -z : Compacta o arquivo com gzip (.tar.gz).
- -j : Compacta o arquivo com bzip2 (.tar.bz2).
- -J : Compacta o arquivo com xz (.tar.xz).
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.
Escreva um comentário