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
Exibindo o conteúdo ao contrário
Desmontando um dispositivo ocupado
Variáveis de internacionalização no Slackware
Imprimindo "man pages"
Mensagens do boot
Leitura recomendada
Ver log de sites do squid em tempo real
Orientações sobre comandos para iniciantes
Retirar todos os acentos de um arquivo com sed - via terminal
Utilizando o SUDO para desligar ou reiniciar um PC logado com um usuário comum
Salvo pelo SED!
Comentários
Parabéns cara!
Show de bola! Não sabia disso não. Hehehe
Vlw aeee
Contribuir com comentário
Enviar