TAR seletivo

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

[ Hits: 25.060 ]

 


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

Cronometrando o tempo de execução

Imprimindo "man pages"

Til (~) no modo console do Slackware

Exibindo o conteúdo ao contrário

Calendário no modo console

Leitura recomendada

bash - Dica simples para aumentar o tamanho do histórico

Rodar um script no boot usando systemd

Cronometrando o tempo de execução

Finalizando tarefas (processos)

Transferindo arquivos com o netcat

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts