Como compactar e extrair arquivos usando o comando tar no Linux

0
21


O comando tar no Linux é frequentemente usado para criar arquivos .tar.gz ou .tgz, também chamados de “tarballs”. Este comando tem muitas 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 possui compactação incorporada. Você 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 um arquivo .tar.bz2.

Atualização, 18/07/22: Analisamos este artigo quanto à precisão e podemos confirmar que ele ainda funciona na versão mais recente do Ubuntu e em outras distribuições do Linux.

Compactar um diretório inteiro ou um único arquivo

Use o comando a seguir 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 esses interruptores realmente significam:

  • -C: c.Crie um arquivo.
  • -z: compacta o arquivo com gzIP.
  • -v – Exibe o progresso no terminal enquanto o arquivo está sendo criado, também conhecido como “v“modas” gramadas. O v é sempre opcional nesses comandos, mas é útil.
  • -f: Permite especificar o Fnome de arquivo do arquivo.

Suponha 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ê queira comprimi-lo em um arquivo chamado archive.tar.gz. Você executaria o seguinte comando:

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

corre "tar -czvf" na pasta desejada para agrupar e compactar todo o conteúdo.

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

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

Embora o tar seja frequentemente 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 apenas um. Por exemplo, suponha que você queira compactar o diretório /home/ubuntu/Downloads, o diretório /usr/local/stuff e o arquivo /home/ubuntu/Documents/notes.txt. Eu apenas executaria o seguinte comando:

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

Basta listar quantos diretórios ou arquivos você deseja fazer backup.

Terminal Ubuntu compactando vários diretórios de uma só vez com o comando "alcatrão".

Excluir diretórios e arquivos

Em alguns casos, você pode querer compactar um diretório inteiro, mas não incluir determinados arquivos e diretórios. Você pode fazer isso adicionando um --exclude altere para cada diretório ou arquivo que você deseja excluir.

Por exemplo, suponha que você deseja compactar /home/ubuntu, mas não deseja compactar os diretórios /home/ubuntu/Downloads e /home/ubuntu/.cache. É assim que você faria:

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

a --exclude O interruptor é muito poderoso. Não aceita nomes de diretórios e arquivos, na verdade aceita padrões. Há muito mais que você pode fazer com ele. 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

O comando "alcatrão" pode ser configurado para ignorar seletivamente alguns arquivos.

Use a compactação bzip2 em vez disso

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

O 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 gzip por padrão, mas não suporte bzip2. No entanto, em geral, gzip e bzip2 são praticamente a mesma coisa, e ambos funcionarão de maneira semelhante.

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

tar -cjvf archive.tar.bz2 stuff

Terminal executando compactação bzip2 em vez de gzip.

Depois de ter um arquivo, você pode extraí-lo com o comando tar. O comando a seguir extrairá o conteúdo de archive.tar.gz para o diretório atual.

tar -xzvf archive.tar.gz

É o mesmo que o comando create file que usamos anteriormente, exceto o -x interruptor substitui o -c mudança. Isso especifica que você deseja eXextrair um arquivo em vez de criar um.

Você pode querer extrair o conteúdo do arquivo para um diretório específico. Você pode fazer isso adicionando o -C alternar no 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 bzip2, substitua o “z” nos comandos acima por um “j”.

corre


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

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