TAR seletivo

Publicado por D. M. Tavares em 10/03/2008

[ Hits: 20.362 ]

 


TAR seletivo



Uso o aplicativo "tar" para realizar cópias de segurança. Gostaria de saber se é possível excluir, do processo de cópia, alguns arquivos ou até mesmo algum diretório?

Resposta: Sim, o aplicativo (comando) "tar" permite excluir arquivos e diretórios do processo de aglutinação/compactação. Para isso, basta usar o parâmetro "exclude".

Para seguir os exemplos propostos, tomemos o diretório "projetos":

$ tree -a projetos/
projetos/
|-- .canal_23_rc
|-- .farma_rede_rc
|-- .infocomp_rc
|-- canal_23
| |-- .xwgrp
| |-- canal.log
| |-- logo.jpg
| `-- relatorio.pdf
|-- farma_rede
| `-- .xwgrp
|-- grupos.txt
|-- infocomp
| |-- .xwgrp
| |-- apresentacao.pdf
| |-- info.jpg
| `-- projeto.pdf
`-- prototipos
`-- cafe_joao
|-- .xwgrp
|-- cafe_joao.jpg
`-- leia-me.txt

5 directories, 16 files

Para aglutinar/compactar todo o diretório "projetos", geralmente faço:

$ tar -cvzf projetos.tar.gz projetos
projetos/
projetos/prototipos/
projetos/prototipos/cafe_joao/
projetos/prototipos/cafe_joao/leia-me.txt
projetos/prototipos/cafe_joao/cafe_joao.jpg
projetos/prototipos/cafe_joao/.xwgrp
projetos/canal_23/
projetos/canal_23/logo.jpg
projetos/canal_23/canal.log
projetos/canal_23/relatorio.pdf
projetos/canal_23/.xwgrp
projetos/infocomp/
projetos/infocomp/info.jpg
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/infocomp/.xwgrp
projetos/grupos.txt
projetos/farma_rede/
projetos/farma_rede/.xwgrp
projetos/.canal_23_rc
projetos/.farma_rede_rc
projetos/.infocomp_rc

Exemplo 1 - Caso deseje excluir do processo de aglutinação/compactação os arquivos ocultos do diretório "projetos", basta fazer:

$ tar -cvzf projetos.tar.gz projetos --exclude=projetos/.*
projetos/
projetos/prototipos/
projetos/prototipos/cafe_joao/
projetos/prototipos/cafe_joao/leia-me.txt
projetos/prototipos/cafe_joao/cafe_joao.jpg
projetos/prototipos/cafe_joao/.xwgrp
projetos/canal_23/
projetos/canal_23/logo.jpg
projetos/canal_23/canal.log
projetos/canal_23/relatorio.pdf
projetos/canal_23/.xwgrp
projetos/infocomp/
projetos/infocomp/info.jpg
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/infocomp/.xwgrp
projetos/grupos.txt
projetos/farma_rede/
projetos/farma_rede/.xwgrp

Exemplo 2 - Caso deseje excluir do processo de aglutinação/compactação os arquivos ocultos de toda a hierarquia do diretório "projetos", basta fazer:

$ tar -cvzf projetos.tar.gz projetos --exclude=.*
projetos/
projetos/prototipos/
projetos/prototipos/cafe_joao/
projetos/prototipos/cafe_joao/leia-me.txt
projetos/prototipos/cafe_joao/cafe_joao.jpg
projetos/canal_23/
projetos/canal_23/logo.jpg
projetos/canal_23/canal.log
projetos/canal_23/relatorio.pdf
projetos/infocomp/
projetos/infocomp/info.jpg
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/grupos.txt
projetos/farma_rede/

Observe que todos os arquivos ocultos foram excluídos do processo de aglutinação/compactação diferente do Exemplo 1.

Exemplo 3 - Caso deseje excluir do processo de aglutinação/compactação as imagens (arquivos JPG) de toda a hierarquia do diretório "projetos", basta fazer:

$ tar -cvzf projetos.tar.gz projetos --exclude=*.jpg
projetos/
projetos/prototipos/
projetos/prototipos/cafe_joao/
projetos/prototipos/cafe_joao/leia-me.txt
projetos/prototipos/cafe_joao/.xwgrp
projetos/canal_23/
projetos/canal_23/canal.log
projetos/canal_23/relatorio.pdf
projetos/canal_23/.xwgrp
projetos/infocomp/
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/infocomp/.xwgrp
projetos/grupos.txt
projetos/farma_rede/
projetos/farma_rede/.xwgrp
projetos/.canal_23_rc
projetos/.farma_rede_rc
projetos/.infocomp_rc

Exemplo 4 - Caso deseje excluir do processo de aglutinação/compactação o subdiretório "prototipos" do diretório "projetos", basta fazer:

$ tar -cvzf projetos.tar.gz projetos --exclude=projetos/prototipos
projetos/
projetos/canal_23/
projetos/canal_23/logo.jpg
projetos/canal_23/canal.log
projetos/canal_23/relatorio.pdf
projetos/canal_23/.xwgrp
projetos/infocomp/
projetos/infocomp/info.jpg
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/infocomp/.xwgrp
projetos/grupos.txt
projetos/farma_rede/
projetos/farma_rede/.xwgrp
projetos/.canal_23_rc
projetos/.farma_rede_rc
projetos/.infocomp_rc

Exemplo 5 - Caso deseje excluir do processo de aglutinação/compactação os arquivos "log" e os arquivos "txt" de toda a hierarquia do diretório "projetos", basta fazer:

$ tar -cvzf projetos.tar.gz projetos --exclude=*.log --exclude=*.txt
projetos/
projetos/prototipos/
projetos/prototipos/cafe_joao/
projetos/prototipos/cafe_joao/cafe_joao.jpg
projetos/prototipos/cafe_joao/.xwgrp
projetos/canal_23/
projetos/canal_23/logo.jpg
projetos/canal_23/relatorio.pdf
projetos/canal_23/.xwgrp
projetos/infocomp/
projetos/infocomp/info.jpg
projetos/infocomp/projeto.pdf
projetos/infocomp/apresentacao.pdf
projetos/infocomp/.xwgrp
projetos/farma_rede/
projetos/farma_rede/.xwgrp
projetos/.canal_23_rc
projetos/.farma_rede_rc
projetos/.infocomp_rc

Espero que estes exemplos tenham explorado bem o parâmetro "exclude" do comando "tar". Para mais informações leia as páginas de manual do comando "tar".

Abraços,

Prof. D.M.T.

Outras dicas deste autor

Desmontando um dispositivo ocupado

Til (~) no modo console do Slackware

Variáveis de internacionalização no Slackware

Calendário no modo console

Imprimindo "man pages"

Leitura recomendada

Listar somente diretórios

Todos os compactadores e descompactadores no Linux

Sed - Adicionar uma Linha em Branco no Final do Arquivo

Debian Wheezy - Alterando hostname sem reiniciar

Três Formas Fáceis de usar Super Usuário pelo Terminal no Linux

  

Comentários
[1] Comentário enviado por kabalido em 11/03/2008 - 14:27h

Parabéns cara!
Show de bola! Não sabia disso não. Hehehe
Vlw aeee



Contribuir com comentário