Como compactar e extrair arquivos usando o comando tar no Linux
O comando tar no Linux é frequentemente usado para criar arquivos archive .tar.gz ou .tgz, também chamados de “tarballs”. Esse comando tem um grande número de opções, mas você só precisa lembrar algumas letras para criar rapidamente arquivos com tar . O comando tar pode extrair os arquivos resultantes também.
O comando GNU tar incluído nas distribuições do Linux possui compressão integrada. Ele pode criar um arquivo .tar e compactá-lo com compactação gzip ou bzip2 em um único comando. É por isso que o arquivo resultante é um arquivo .tar.gz ou .tar.bz2.
Comprimir 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, ele funciona recursivamente.
tar -czvf nome-de-arquivo.tar.gz / caminho / para / diretório-ou-arquivo
Veja o que esses switches realmente significam:
- -c: Create um arquivo.
- -z: Comprimir o arquivo com gzip.
- -v: exibe o progresso no terminal enquanto cria o arquivo, também conhecido como “vmodo "erbose". O v é sempre opcional nestes 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 há 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 / alguma coisa
Comprimir vários diretórios ou arquivos de uma vez
Embora o tar seja usado com freqüência para compactar um único diretório, você também pode usá-lo para compactar vários diretórios, vários arquivos individuais ou ambos. Apenas forneça 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ê acabou de executar o seguinte comando:
tar -czvf archive.tar.gz / home / ubuntu / Downloads / usr / local / stuff / home / subbuntu / documentos / notes.txt
Basta listar quantos diretórios ou arquivos que você deseja fazer backup.
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 anexando um --excluir
alternar 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
O interruptor é muito poderoso. Ele não recebe nomes de diretórios e arquivos - ele realmente aceita padrões. Há muito mais que você pode fazer com isso. Por exemplo, você poderia 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
Embora a compactação gzip seja usada com mais freqüência 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 denominados arquivos .tar.bz2, .tar.bz ou .tbz. Para fazer isso, basta substituir o -z para gzip nos comandos aqui com um -j para bzip2.
O Gzip é mais rápido, mas geralmente comprime 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. O gzip também é mais comum, com alguns sistemas Linux simplificados, incluindo o 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 fornecido para compactar o diretório de material, você executaria o seguinte comando:
tar -cjvf archive.tar.bz2 stuff
Extrair um arquivo
Depois de ter um arquivo, você pode extraí-lo com o comando tar. O comando a seguir irá 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 extrato 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
mudar para o final do comando. Por exemplo, o comando a seguir irá 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 bzip2-comprimido, substitua o “z” nos comandos acima por um “j”.
Esse é 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. executar o tar informa comando no shell para visualizar a página de informações detalhadas do comando tar. aperte o q chave para sair da página de informações quando estiver pronto. Você também pode ler o manual on-line do tar.
Se você estiver usando uma área de trabalho gráfica do Linux, também poderá 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.