Como compactar e extrair arquivos usando o comando tar no Linux

  • Chris Hoffman

    @chrisbhoffman

  • 10 de abril de 2016 , 6h40 EDT

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

O comando GNU tar incluído no Linux distribuições tem compactaçã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 compactará todos os outros diretórios dentro de um diretório que você especificar – em outras palavras , funciona recursivamente.

tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

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

  • -c: Crie um arquivo.
  • -z: Compacta o arquivo com gzip.
  • -v: Mostra o progresso no terminal enquanto cria o arquivo, também conhecido como modo “detalhado”. O v é sempre opcional nesses comandos, mas é útil.
  • -f: Permite que você especifique o nome do arquivo do arquivo.
Anúncio

Digamos que você tenha um diretório chamado “stuff” no diretório atual e queira salvá-lo em um arquivo chamado 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 denominado 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

RELACIONADO: Como gerenciar arquivos do terminal Linux: 11 comandos que você precisa Saiba

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ê deseja compactar o / home / ubuntu / Do diretório wnloads, o diretório / usr / local / stuff e o arquivo /home/ubuntu/Documents/notes.txt. Você simplesmente 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.

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 --exclude opção para cada diretório ou arquivo que deseja excluir.

Anúncio

Por exemplo, digamos 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

A opção --exclude é muito poderosa. Não aceita nomes de diretórios e arquivos – na verdade, 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 compactaçã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 um -j para bzip2.

Anúncio

Gzip é mais rápido, mas geralmente compacta um pouco menos, então você obtém um arquivo um pouco maior. 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

Extrair 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

É o mesmo que o comando de criação de arquivo que usamos acima, exceto a opção -x substitui a opção -c. Isso especifica que você deseja extrair um arquivo em vez de criar um.

Anúncio

Você pode querer extrair o conteúdo do arquivo para um diretório específico. Você pode fazer isso anexando a opção -C 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, então não podemos listá-las todas aqui. Para maiores informações. execute o comando info tar no shell para visualizar 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 você estiver usando uma área de trabalho Linux gráfica, também pode usar o utilitário de compactação de arquivos ou o gerenciador de arquivos incluído na 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.

Chris Hoffman
Chris Hoffman é editor-chefe do How-To Geek. Ele escreve sobre tecnologia há quase uma década e foi colunista da PCWorld por dois anos. Chris escreveu para o The New York Times, foi entrevistado como um especialista em tecnologia em estações de TV como a NBC 6 de Miami e teve seu trabalho coberto pela meios de comunicação como a BBC. Desde 2011, Chris escreveu mais de 2.000 artigos que foram lidos mais de 500 milhões de vezes — e isso “está apenas aqui em How-To Geek.Read Full Bio”

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *