Como compactar e extrair arquivos usando o comando tar no Linux

O comando tar no Linux é frequentemente usado para criar arquivos compactados .tar.gz ou .tgz, também chamados de “tarballs”. Este comando possui um grande número de opções, mas você só precisa se lembrar de algumas letras para criar arquivos rapidamente com o tar. O comando tar também pode extrair os arquivos resultantes.

O comando GNU tar incluído nas distribuições Linux tem compressão integrada. Ele pode criar um arquivo .tar e compactá-lo com a compactação gzip ou bzip2 em um único comando. É por isso que o arquivo resultante é um arquivo .tar.gz ou .tar.bz2.

Compactar um diretório inteiro ou um único arquivo

Use o seguinte comando para compactar um diretório inteiro ou um único arquivo no Linux. Ele também comprimirá todos os outros diretórios dentro de um diretório que você especificar – em outras palavras, funciona recursivamente.

tar -czvf nome-do-arquivo.tar.gz / caminho / para / diretório-ou-arquivo

Aqui está o que essas opções realmente significam:

  • -c: C reate um arquivo.
  • -z: compacta o arquivo com g z ip.
  • -v: Exibe o progresso no terminal durante a criação do arquivo, também conhecido como modo “ v erbose”. O v é sempre opcional nesses comandos, mas é útil.
  • -f: Permite especificar o f ilename do arquivo.

Digamos que você tenha um diretório denominado “stuff” no diretório atual e deseja salvá-lo em um arquivo denominado archive.tar.gz. Você executaria o seguinte comando:

tar -czvf archive.tar.gz stuff

Ou, digamos que haja um diretório em / usr / local / something no sistema atual e você deseja compactá-lo em um arquivo chamado archive.tar.gz. Você executaria o seguinte comando:

tar -czvf archive.tar.gz / usr / local / something

Compactar vários diretórios ou arquivos de uma só vez

Embora o tar seja freqüentemente usado para compactar um único diretório, você também pode usá-lo para compactar vários diretórios, vários arquivos individuais ou ambos. Basta fornecer uma lista de arquivos ou diretórios em vez de um único. Por exemplo, digamos que você queira compactar o diretório / home / ubuntu / Downloads, o diretório / usr / local / stuff e o arquivo /home/ubuntu/Documents/notes.txt. Você apenas executaria o seguinte comando:

tar -czvf archive.tar.gz / home / ubuntu / Downloads / usr / local / stuff /home/ubuntu/Documents/notes.txt

Apenas liste quantos diretórios ou arquivos você deseja fazer backup.

Recomendado:  Como conectar o Nest Secure a uma nova rede Wi-Fi

Excluir diretórios e arquivos

Em alguns casos, você pode desejar compactar um diretório inteiro, mas não incluir certos arquivos e diretórios. Você pode fazer isso anexando uma --excludeopção para cada diretório ou arquivo que deseja excluir.

Por exemplo, digamos que você deseja compactar / home / ubuntu, mas não deseja compactar os diretórios / home / ubuntu / Downloads e /home/ubuntu/.cache. Veja como você faria isso:

tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Downloads --exclude = / home / ubuntu / .cache

O --excludeswitch é muito poderoso. Ele não aceita nomes de diretórios e arquivos – na verdade, ele aceita padrões. Há muito mais que você pode fazer com isso. Por exemplo, você pode arquivar um diretório inteiro e excluir todos os arquivos .mp4 com o seguinte comando:

tar -czvf archive.tar.gz / home / ubuntu --exclude = *. mp4

Use compressão bzip2 em vez disso

Embora a compactação gzip seja usada com mais frequência para criar arquivos .tar.gz ou .tgz, o tar também oferece suporte à compactação bzip2. Isso permite que você crie arquivos compactados com bzip2, geralmente denominados arquivos .tar.bz2, .tar.bz ou .tbz. Para fazer isso, basta substituir o -z para gzip nos comandos aqui por -j para bzip2.

Gzip é mais rápido, mas geralmente compacta um pouco menos, então você obtém um arquivo um pouco maior. O Bzip2 é mais lento, mas comprime um pouco mais, então você obtém um arquivo um pouco menor. Gzip também é mais comum, com alguns sistemas Linux simplificados incluindo suporte a gzip por padrão, mas não o suporte a bzip2. Em geral, porém, gzip e bzip2 são praticamente a mesma coisa e ambos funcionarão de forma semelhante.

Por exemplo, em vez do primeiro exemplo que fornecemos para compactar o diretório de coisas, você executaria o seguinte comando:

tar -cjvf archive.tar.bz2 stuff

Extraia um arquivo

Assim que tiver um arquivo, você pode extraí-lo com o comando tar. O seguinte comando extrairá o conteúdo de archive.tar.gz para o diretório atual.

tar -xzvf archive.tar.gz

É igual ao comando de criação de arquivo que usamos acima, exceto que a -xopção substitui a -copção. Isso especifica que você deseja e x traçar um arquivo em vez de criar um.

Recomendado:  Como ajustar a perspectiva das fotos no Android

Você pode querer extrair o conteúdo do arquivo para um diretório específico. Você pode fazer isso anexando a -Copção ao final do comando. Por exemplo, o comando a seguir extrairá o conteúdo do arquivo archive.tar.gz para o diretório / tmp.

tar -xzvf archive.tar.gz -C / tmp

Se o arquivo for um arquivo compactado com bzip2, substitua o “z” nos comandos acima por um “j”.


Este é o uso mais simples possível do comando tar. O comando inclui um grande número de opções adicionais, portanto, não podemos listá-las todas aqui. Para maiores informações. execute o comando info tar no shell para ver a página de informações detalhadas do comando tar  . Pressione a tecla q para sair da página de informações quando terminar. Você também pode  ler o manual do tar online .

Se estiver usando uma área de trabalho Linux gráfica, você também pode usar o utilitário de compactação de arquivos ou o gerenciador de arquivos incluído em sua área de trabalho para criar ou extrair arquivos .tar. No Windows, você pode extrair e criar arquivos .tar com o  utilitário gratuito  7-Zip .