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
Mantendo o programa em execução após logout
Mensagens do boot
Variáveis de internacionalização no Slackware
Til (~) no modo console do Slackware
Exibindo o conteúdo ao contrário
Leitura recomendada
Listar as máquinas/dispositivos online em determinada rede
Executando Arquivo de Mídia .opus pelo Terminal
Removendo Sessão Convidado do Ubuntu-14.04-LTS
Como verificar o TIPO e o TAMANHO da memória RAM no Linux (com bônus)
Trabalhando com permissões de arquivos
Comentários
Parabéns cara!
Show de bola! Não sabia disso não. Hehehe
Vlw aeee
Contribuir com comentário
Enviar