Enviado em 01/07/2009 - 11:29h
Eu estou precisando de um help em um script que gostaria de criar e gostaria de saber se alguém poderia me dar uma ajuda.
Vamos ao cenário:
Tenho um storage, onde os dados são organizados seguindo a estrutura abaixo. Nele, os dados estão armazenados em pastas cujo o nome é a data de criação.
linux:/mnt/stg_a/ # ls *
2008_06_28
2008_06_27
2008_06_28
Dentro destas pastas, estão os arquivos armazenados.
Preciso de uma forma apagar o o conteúdo destas pastas, porém seguindo as premissas:
1) Dentro das pastas, os arquivos que tiverem as palavras "vinheta" ou "santinho" no nome, não poderão ser apagados. Engloba-se Santinho , SANTINHO, VINHETA, Vinheta, VTA, vta;
2) Caso na pasta, não contenha nenhuma das excessões(arquivos com a palavra "vinheta" ou "santinho" no nome), a pasta e todo seu conteúdo podem ser apagados sem problemas.
Eu sei que entrando em cada diretório destes e rodando o comando ls | grep -v vinheta | xargs rm -rf, eu consigo remover dos os arquivos exceto os que tenham a palavra vinheta. Quando eu listo o conteúdo do diretório e não há nenhuma das exceções nele, eu o removo manualmente (rm -rf).
Preciso fazer isto, para evitar o trabalho de entrar em cada pasta e ver se tem algum arquivo que se enquadre nas excessões citadas porém não estou conseguindo uma maneira de fazer isto de forma mais automatizada.
Um abraço a todos!
Vamos ao cenário:
Tenho um storage, onde os dados são organizados seguindo a estrutura abaixo. Nele, os dados estão armazenados em pastas cujo o nome é a data de criação.
linux:/mnt/stg_a/ # ls *
2008_06_28
2008_06_27
2008_06_28
Dentro destas pastas, estão os arquivos armazenados.
Preciso de uma forma apagar o o conteúdo destas pastas, porém seguindo as premissas:
1) Dentro das pastas, os arquivos que tiverem as palavras "vinheta" ou "santinho" no nome, não poderão ser apagados. Engloba-se Santinho , SANTINHO, VINHETA, Vinheta, VTA, vta;
2) Caso na pasta, não contenha nenhuma das excessões(arquivos com a palavra "vinheta" ou "santinho" no nome), a pasta e todo seu conteúdo podem ser apagados sem problemas.
Eu sei que entrando em cada diretório destes e rodando o comando ls | grep -v vinheta | xargs rm -rf, eu consigo remover dos os arquivos exceto os que tenham a palavra vinheta. Quando eu listo o conteúdo do diretório e não há nenhuma das exceções nele, eu o removo manualmente (rm -rf).
Preciso fazer isto, para evitar o trabalho de entrar em cada pasta e ver se tem algum arquivo que se enquadre nas excessões citadas porém não estou conseguindo uma maneira de fazer isto de forma mais automatizada.
Um abraço a todos!