Como compactar e extrair arquivos usando o comando tar no Linux
O comando tar no Linux é freqüentemente 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 pode extrair os arquivos resultantes também.
O comando GNU tar incluído nas distribuições Linux 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 nome-do-arquivo.tar.gz / caminho / para / diretório-ou-arquivo
Aqui está o que essas opções realmente significam:
- -c: Ccriar um arquivo.
- -z: compacta o arquivo com gzip.
- -v: Exibe o progresso no terminal durante a criação do arquivo, também conhecido como “vmodo erbose ”. O v é sempre opcional nesses comandos, mas é útil.
- -f: Permite que você especifique o fnome do arquivo.
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 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
RELACIONADO:Como gerenciar arquivos no terminal Linux: 11 comandos que você precisa saber
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.
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 um --excluir
alterne para cada diretório ou arquivo que você deseja excluir.
Por exemplo, digamos que você queira 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 --excluir
switch é muito poderoso. Não aceita nomes de diretórios e arquivos - na verdade, aceita padrões. Você pode fazer muito mais 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 compacta 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. 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 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 de criação de arquivo que usamos acima, exceto o -x
interruptor substitui o -c
interruptor. Isso especifica que você deseja extrate 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 anexando o -C
mude para o 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 info alcatrão no shell para ver a página de informações detalhadas do comando tar. aperte o q chave 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.