O comando tar é uma ferramenta eficaz e que tem sido muito utilizada, para comprimir arquivos, directórios, discos etc.
Aqui estão alguns exemplos, como efectuar algumas tarefas com o comando tar.
Como criar um arquivo tar simples
Um arquivo tar é comumente chamado, em inglês, tarball (bola tar) e pode ser facilmente criada a partir de um directório. No exemplo, abaixo, mostro a criação de arquivos_home.tar, a partir do conteúdo do meu directório home/:
tar -cvf home.tar home/ | |
home/ |
home/meudominio.com |
home/meudominio.mysql |
As opções usadas na declaração tar -cvf têm os seguintes efeitos:
- c – (create) cria uma novo arquivo.tar
- v – (verbose) torna a execução do comando mais “verbosa”, ou seja, ele vai “contando” o que está fazendo
- f – indica que o resultado será do tipoarquivo (file)
Tambem pode usar -vv em substituição ao -v para ver o comando ser executado com mais verbosidade.
Como criar um arquivo .tar.gz
Um arquivo .tar.gz é um arquivo .tar comprimido através do gzip – é por isso que ele tem o .gz na sua extensão. Para alcançar esse fim, use a opção -z, em conjunto com as anteriores. Veja:
tar -cvzf home.tar.gz home/ |
Note que acrescentei o z e alterei o nome do arquivo de saída para home.tar.gz home/
Como criar um arquivo bz2
BZIP2
Arquivos bz2, são arquivos bzip2 – um compressor de dados que usa o algoritmo Burrows-Wheeler e pode reduzir o espaço ocupado por um arquivo em até 10% do seu volume original.
Em função da maior capacidade de compressão, eu recomendo usar sempre o bzip. A desvantagem do seu uso está na maior demora para comprimir ou descomprimir arquivos.
Veja como usar o bzip2, no lugar do gzip, na compressão de arquivos tar:
tar -cvjf imagens.tar.bz2 home/ |
Note que substituí a opção z por j, no exemplo acima. A extensão também foi alterada para bz2
A extensão dos arquivos
Antes de seguir, gostaria de falar rapidamente sobre as extensões dos arquivos.
Você é livre para escolher a extensão que quiser. O arquivo de saída, do exemplo anterior, poderia se chamar mysql.php – o conteúdo continuaria sendo exatamente o mesmo.
Mas o objetivo da extensão de um arquivo não é ser jeitosa ou linda. Antes, ela deve ser informativa e ajudar os utilizadores a entender de que tipo se trata aquele arquivo, de forma que se possa usar o comando certo em relação a ele. Mais a frente, vamos ver que os comandos para descompressão dos arquivos variam em função de ter sido usado bzip (ou bzip2) ou gzip na sua compressão.
Extensões comuns ao usar o tar
Já que estamos falando no assunto, há alguns padrões bastante difundidos:
- arquivos tar, comprimidos comgzip, usam extensões .tar.gz ou .tgz
- arquivos tar, comprimidos combzip2, usam predominantemente extensões .tar.bz ou .tbz ou .bz2
Como extrair arquivos tar
Para extrair o conteúdo de um arquivo tar, usamos a opção -x. Veja como funciona:
tar -xvf imagens.tar |
Se o arquivo estiver comprimido com o gzip:
tar -xvfz imagens.tar.gz |
Se estiver comprimido com bzip2:
tar -xvfj imagens.tar.bz |
Nota: O arquivo será sempre descomprimido no directório actual. Use o comando pwd, caso não saiba em que directório você se encontra.
Se quiser indicar outro directório para descompactar o arquivo, use a opção -C acompanhada do directório de destino. No exemplo abaixo, vou direcionar a extração do conteúdo do arquivo imagens.tar.bz pro directório ~/minhas_ imagens /:
tar -xvfj imagens.tar.bz -C ~/minhas_imagens/ |
Notou que usei a opção -C antes do directório destino?
Como listar o conteúdo de um arquivo tar
A opção -t é a que permite listar o conteúdo de arquivos tar. Veja como funciona:
tar -tvf imagens.tar | |
drwxr-xr-x root/root 0 2013-11-19 01:22 home/imagens/ |
-rw-r–r– root/root 68458 2013-11-13 00:42 lisboa.png | |
-rw-r–r– root/root 12053 2013-11-13 00:42 porto.png |
-rw-r–r– root/root 2349 2013-11-13 00:42 coimbra.gif | |
-rw-r–r– root/root 87697 2013-11-13 00:42 albufeira.jpg |
Como listar o conteúdo de arquivos tar.gz ou tar.bz
Nestes casos o comando permanece o mesmo. Tome apenas o cuidado de indicar corretamente os nomes dos arquivos cujo conteúdo você deseja listar.
Para listar um arquivo .tar.gz:
tar -tvf imagens.tar.gz |
Para listar um arquivo .tar.bz:
tar -tvf imagens.tar.bz |
Como extrair apenas um arquivo de dentro do arquivo tar
Neste exemplo, vou extrair o arquivo lisboa.png de dentro do arquivo imagens.tar:
tar -xvf imagens.tar lisboa.png |
Para remover um arquivo com o mesmo nome de dentro de um arquivo tar.gz, acrescente a opção -z:
tar -zxvf imagens.tar.gz lisboa.png |
Se o arquivo comprimido for um tar.bz, use a opção -j:
tar -jxvf imagens.tar.bz lisboa.png |
Como extrair vários arquivos de um arquivo tar, tar.gz ou tar.bz
Neste caso, listamos os diversos arquivos, usando aspas. Observe os exemplos:
tar -xvf imagens.tar “lisboa.png” “lisboa.png” | |
tar -zxvf imagens.tar.gz “porto.png” “porto.png” |
tar -jxvf imagens.tar.bz “coimbra.gif” “coimbra.gif” |
Como extrair vários arquivos de um arquivo .tar, .tar.gz ou .tar.bz usando coringas
Através de coringas, podemos indicar um grupo de arquivos sobre o qual queremos executar uma ação. Vou indicar como extrair um grupo separado de arquivos de dentro de arquivo tar, tar.gz e tar.bz com o uso de coringas, ainda usando o exemplo do tópico anterior:
tar -xvf imagens.tar –wildcards *.xpm | |
tar -zxvf imagens.tar.gz –wildcards *.xpm |
tar -jxvf imagens.tar.bz –wildcards *.xpm |
Como adicionar arquivos ou directórios a arquivos tar já existentes
Esta possibilidade é útil para quem quer acumular mais arquivos ou directórios a um arquivo tar de backup já existente.
No exemplo que segue, vou acrescentar o arquivo lisboa.png ao arquivo compactado imagens.tar. Para isto, vou usar a opção -r (append):
tar -rvf imagens.tar lisboa.png |
Ou um directório inteiro:
tar -rvf backup-sql-2017-05-02.tar sql/ |
Como adicionar arquivos ou directórios a arquivos tar.gz ou tar.bz
Neste caso, a solução é recriar o arquivo, já incluindo estes novos na sua nova bola tar – o tar não tem como acrescentar arquivos a arquivos tar compactados com bzip2 ou gzip.
Como verificar arquivos tar
Arquivos de backup precisam ser checados sempre.
Seria desolador, após um desastre (toc, toc, toc), descobrir que as cópias de segurança não funcionam.
Novamente, não é possível aplicar a solução a arquivos tar.gz e tar.bz diretamente, com o comando tar – qualquer que seja a extensão, arquivos compactados, seja com bzip2 ou gzip.
Por isto, os scripts de backup, costumam tarear primeiro os arquivos, verificá-los e, se tudo estiver certo, compactá-los.
Veja um exemplo de verificação, com o seu resultado:
tar -cvWf backup-2017-03-24.tar |
A solução para testar se o arquivo final tar.gz ou tar.bz está bom é usar o utilitário gzip ou o bzip2, com a opção ‘-t’:
gzip -tv backup.tar.gz | |
backup.tar.gz: OK |
ou
bzip2 -tv backup.tar.bz | |
backup.tar.bz: OK |
Conclusão
Para finalizar, fica uma pequena tabela com as opções abordadas neste tema;
- c — para criar um arquivo do tipoarquivo;
- x — para extrair arquivos de dentro do arquivo tar
- v — mostra o processo na tela. A opção-vv exibe mais detalhes ainda;
- f — determina o nome do arquivo tar;
- t — exibe o conteúdo;
- j — compacta ou descompacta os arquivos via bzip2
- z — compacta ou descompacta os arquivos via gzip;
- r — adiciona arquivos ao tar;
- W — verifica a integridade do arquivo tar;
- wildcards — permite trabalhar com coringas.
Deixe um comentário