O uso do tar é comum no universo Linux, sendo um comando importante para prover compactação e descompactação de arquivos. Muitos downloads para o sistema estão nos formatos tar.gz ou tar.bz2, o que torna importante o conhecimento das funcionalidades do comando tar por pessoas usuárias Linux.

Devido a grande quantidade de opções que o comando fornece, o uso dele pode causar dúvidas nas pessoas que são iniciantes em Linux e até mesmo em profissionais que já trabalham com o sistema. Isto acontece por causa da diferença de funcionamento entre os arquivos gerados pelo comando tar e os tradicionais zip e rar.

Para explicar melhor o que é tar e lhe ajudar a aprender as mais diversas formas de uso com exemplos práticos, criamos este artigo em que apresentaremos os seguintes tópicos:

Vamos lá? Boa leitura!

O que é e para que serve o comando .tar?

O comando tar é utilizado para arquivar e comprimir múltiplos arquivos e diretórios em apenas um arquivo, além de permitir a manipulação dos documentos criados. Seu uso facilita a transferência de arquivos e também é muito útil para backup, porque o arquivo gerado contém informações como as permissões das pessoas usuárias, estruturas dos diretórios e datas.

Contudo, o comando por si só não comprime os arquivos, apenas os arquiva. Para comprimir, é preciso utilizar os softwares gzip e bzip2, que geram os arquivos com extensão .tar.gz e .tar.bz2. Eles têm diferenças entre a taxa de compactação, ou seja, qual a porcentagem do tamanho final do arquivo e a velocidade de processamento, que é o tempo que a compactação ou descompactação demorará.

Você deve escolher o gzip quando quiser compactar e descompactar arquivos com maior velocidade de processamento, mas sem se preocupar com a taxa de compactação. Por sua vez, deve usar o bzip2 quando preferir um arquivo com maior taxa de compactação. Por demorar mais para compactar, é preferível usar o gzip quando o arquivo compactado for descompactado com pouca frequência.

Qual sintaxe do tar e os principais parâmetros?

A sintaxe do comando tar será a seguinte: 

tar [parametros] [arquivo_tar] [arquivos_iniciais]

Nesse caso: 

  • A palavra tar, no início, seria o comando propriamente dito;
  • Na parte referente a parâmetros, podemos utilizar algumas opções, com base nas letras do nosso alfabeto. As mais utilizadas estão na tabela a seguir:
ParâmetroSignificado
-vexibe o que houve na operação, se ela foi bem sucedida ou não;
-c criação de um novo arquivo .tar;
-t mostra o conteúdo de um arquivo .tar;
-pas permissões existentes no arquivo serão preservadas com esse comando;
-rcomando que permite a adição de novos arquivos para um arquivo .tar já existente;
-fpermite detalhar qual arquivo .tar será utilizado na operação;
-x permite que a extração de arquivos dentro de um arquivo .tar seja feita;
-Cpermite especificar em qual local do sistema os arquivos .tar ficarão. Para esse caso, é utilizado a letra maiúscula C. 
  • A parte referente ao arquivo_tar seria o nome que o arquivo terá, que poderá ser qualquer um;
  • Por fim, a parte arquivos_iniciais indica quais pastas do sistema virarão um arquivo .tar

Há uma grande quantidade de opções disponíveis para o comando tar. Antes de prosseguir, aproveite e faça o download do Guia Hacker. Aprenda a automatizar tarefas, criar atalhos, melhorar sua segurança online e a descobrir como evitar spam no seu email.

banner para download de ebook sobre hacker imagem como botão escrito "baixar"

Agora, vamos verificar quatro exemplos práticos do uso dos parâmetros:

Exemplo 1: tar -c times.tar palmeiras.xlsx flamengo.xlsx
No caso, o exemplo acima cria um arquivo times.tar, que possui os arquivos palmeiras.xlsx e flamengo.xlsx, planilhas do Excel fictícias. Assim, o conteúdo existente em times.tar seriam as duas planilhas acima. 

Exemplo 2: tar -t paleontologia.tar
No caso, o comando acima irá mostrar o conteúdo existente no arquivo paleontologia.tar. 

Antes de irmos ao terceiro exemplo, você deve estar se perguntando: eu posso juntar essas letras acima? Como, por exemplo, utilizar -cp? Sim! Isso é possível e você poderá fazer o que a sua imaginação permitir com a combinação de parâmetros do tar.

Exemplo 3: tar -cp sorvetes.tar flocos.txt abacaxi.txt
Utilizando o comando -cp acima, iremos criar o arquivo sorvetes.tar e, nele, terão os arquivos flocos.txt e abacaxi.txt. Com isso, além dos arquivos serem criados, a permissão de acesso a eles será mantida durante o processo, com o comando -p. 

Exemplo 4: tar -cvf paises.tar trabalhos
Utilizando o comando acima, a pasta trabalhos terá seu conteúdo compactado no arquivo paises.tar. Além disso, o comando exibirá os detalhes que serão feitos na operação, pela utilização do comando -v.

Vejamos agora algumas vantagens e desvantagens desse comando.

Quais as vantagens e desvantagens do comando tar?

As vantagens de utilizar o comando tar:

  • Facilidade de uso, devido à sua simplicidade;
  • Tanto a compactação quanto a descompactação ocorrem de forma rápida;
  • Esse comando está presente na maioria das distribuições Linux;
  • Redução drástica no tamanho dos arquivos;
  • Além da redução, o comando tar deixa os arquivos internos intactos. Isso inclui o conteúdo que eles possuem e as permissões de acesso que cada um possui.

Já como desvantagens, temos:

  • Esse comando é apenas para pessoas que utilizam Linux. Para usuários ou usuárias de Windows, por exemplo, o mais indicado é a compactação via .zip.

Quais os principais comandos tar: exemplos práticos!

Há uma grande quantidade de opções disponíveis para o comando tar. Abaixo, vamos mostrar os comandos para compactar, descompactar, exibir o conteúdo e o tamanho dos arquivos. Confira!

Compactando arquivos: criando um .tar: tar -cvf

O comando tar pode ser usado para compactar diversos arquivos e pastas de uma vez. As possibilidades podem ser usando gzip, bzip2 ou apenas criando um arquivo sem compactação. As opções e a estrutura do comando para criação de um arquivo com extensão tar são as seguintes:

tar -cvf arquivo-criado.tar caminho/para/arquivo-ou-diretorio

  • -c : cria um arquivo tar;
  • -v : exibe o progresso de criação no terminal e, apesar de opcional, pode ser útil;
  • -f : nome do arquivo a ser criado, no exemplo, arquivo-criado.tar

No exemplo acima, arquivo-ou-diretorio deve ser compactado. Suponha que você queira criar um arquivo compactado chamado arquivo-criado.tar a partir de um diretório chamado diretorio-exemplo, e que esteja no mesmo diretório que diretorio-exemplo. Assim, o comando será:

tar -cvf arquivo-criado.tar arquivos

Caso não esteja no mesmo diretório, deve utilizar o comando da seguinte forma:

tar -cvf arquivo-criado.tar home/arquivos

Sendo home/arquivos o caminho para diretório-exemplo.

Criando um arquivo .tar.gz r  

Como dito anteriormente, um arquivo .tar apenas arquiva um conjunto de arquivos. Caso você queira compactar usando gzip, deve acrescentar a tag -z às opções. O comando fica da seguinte forma:

tar -czvf arquivo-criado.tar /home/diretorio-exemplo

Caso queira acrescentar mais de um item ao comando, ele ficará como segue:

tar -czvf arquivo-criado.tar.gz /home/ubuntu/Downloads 
/usr/local/diretorio /home/ubuntu/Documents/texto.txt

Criando um arquivo .tar.bz2

A compactação utilizando bzip2 é semelhante, fazendo uso da tag -j:

tar -jxvf tar -czvf arquivo-criado.tar.bz2 /home/diretorio-exemplo

Adicionando arquivos a um .tar

Outra operação que pode ser realizada é a adição de arquivos e diretórios a um .tar já existente, o que deve ser feita com a tag -r. Abaixo há um exemplo da adição de texto.txt a arquivo-criado.tar.

tar -rvf arquivo-criado.tar texto.txt

Descompactando arquivos .tar

A descompactação de arquivos é semelhante ao processo de compactação e você pode tanto extrair um item quanto um conjunto deles. As duas formas são mostradas abaixo. Acompanhe!

Como extrair apenas um item do arquivo .tar?

No caso da extração de um único item, há a opção de extraí-lo de um arquivo .tar, .tar.gz ou .tar.bz2. O exemplo abaixo mostra as duas sintaxes possíveis para extração do arquivo texto.txt do arquivo-existente.tar:

tar -xvf arquivo-existente.tar texto.txt 
tar --extract --file= arquivo-existente.tar texto.txt

Para extrair um único item de um arquivo .tar.gz, você pode usar comandos semelhantes:

<pre class="wp-block-code"><code lang="basic" class="language-basic">tar -zxvf arquivo-existente.tar texto.txt
tar --extract --file= arquivo-existente.tar texto.txt</code></pre>

Por fim, no caso de arquivos .tar.bz2:

tar -jxvf arquivo-existente.tar texto.txt
tar --extract --file= arquivo-existente.tar texto.txt

Como extrair arquivos para um diretório específico?

Conforme visto na tabela de parâmetros do comando tar, para que essa operação seja realizada, devemos utilizar o comando –C no tar. Observe que o C, para esse caso, é maiúsculo, diferentemente da criação de arquivos novos, com a sintaxe “c”.
Você deverá digitar no terminal o seguinte comando, por exemplo: 

tar -xvzf repteis.tar -C /escola/provas

No exemplo acima, o arquivo repteis.tar será extraído para dentro da pasta “provas”, na pasta “escola”. Porém, é necessário verificar se o diretório em que os arquivos serão extraídos existe, pois, caso não exista, os arquivos não serão extraídos e será apresentado um erro ao dar o comando. 

Como extrair vários itens específicos do arquivo.tar?

A extração de mais de um item de um arquivo.tar é semelhante à extração de apenas um. Se quiser extrair os arquivos texto.txt e imagem.jpg do arquivo compactado arquivo-existente.tar, deve-se utilizar o comando abaixo:

tar -xvf arquivo-existente.tar texto.txt imagem.txt main.cpp

No caso de arquivos compactados com extensão .tar.bz2, a sintaxe fica a seguinte:

tar -zxvf arquivo-existente.tar texto.txt imagem.txt main.cpp

Já para arquivos .tar.bz2:

tar -jxvf arquivo-existente.tar texto.txt imagem.txt

Como extrair arquivos de um mesmo padrão

A extração de itens com mesmo padrão pode ser realizada utilizado wildcards. Por exemplo, para a extração de itens com extensão .txt, deve-se utilizar o seguinte comando para .tar:

tar -xvf arquivo-existente.tar --wildcards '*.jpg'

No caso de tar.gz. o comando fica:

tar -zxvf arquivo-existente.tar --wildcards '*.jpg'

Já para .tar.bz2:

tar -jxvf arquivo-existente.tar --wildcards '*.jpg'

Listando o conteúdo de um arquivo

Listar os itens de um arquivo é outra opção do comando tar. Ela exibe, além de nomes, datas e permissões, e deve-se utilizar a tag -t. No caso de arquivos .tar, o comando é o seguinte:

tar -tvf arquivo-existente.tar

Seu uso para .tar.gz:

tar -tvf arquivo-existente.tar.gz

Para arquivos .tzr.bz2 a sintaxe é:

tar -tvf arquivo-existente.tar.bz2

Como verificar o tamanho de um arquivo? tar -czf!

A verificação do tamanho do arquivo em kilobytes (KB) utiliza a tag -c. Supondo que deve-se verificar o tamanho de um .tar:

tar -czf - arquivo-existente.tar | wc -c

O comando para .tar.gz é semelhante:

tar -czf - arquivo-existente.tar.gz | wc -c

Já para .tar.bz2:

tar -czf - arquivo-existente.tar.bz2 | wc -c

Conclusão

Muito bacana esse comando tar, não acha? Ele é um comando muito utilizado para pessoas que utilizam o Linux como sistema operacional. Caso você deseje fazer um backup de arquivos em um servidor e que as permissões desse arquivo sejam mantidas, o comando tar é o mais indicado para ser utilizado, nesse caso. 

Além disso, o comando tar também reduz o tamanho de arquivos quando são compactados e, quando há alterações nos arquivos, o tar permite a possibilidade de verificar o histórico de alterações que o documento teve. Dessa forma, podemos consultar a documentação oficial deste comando digitando: man tar em um terminal do Linux.

Gostou do nosso conteúdo sobre tar? Então, confira nosso post sobre VirtualBox e entenda o que é uma maquina virtual!

5 Shares:
Deixe um comentário
Você também pode gostar