removido
(usa Nenhuma)
Enviado em 02/07/2009 - 10:41h
Ainda não funcionou. Relendo o título que eu coloquei no tópico, percebí que não fui muito claro no que eu preciso.
Tenho uma pasta que é o storage: /mnt/stg/
Dentro desta pasta de storage (/mnt/stg/), existem diversas pastas com subdiretórios:
# ls /mnt/stg/2008_07_24/
SubDir1
SubDir2
SubDir3
# ls /mnt/stg/2008_07_25/
SubDir4
SubDir5
SubDirVinheta1
SubDirSantinho10
Hoje, eu tenho que fazer o seguinte procedimento, para remover arquivos:
# ls /mnt/stg/*
Desta forma eu consigo ver todos os arquivos contidos em cada pasta:
2008_07_24/
SubDir1
SubDir2
SubDir3
2008_07_25/
SubDirDir4
SubDirDir5
SubDirVinheta1
SubDirSantinho10
Quando após a saída do ls, eu vejo que em determinada pasta não existe nenhum arquivo com estas palavras, como por exemplo a pasta /mnt/stg/2008_07_24/, eu faço o seguinte:
# cd /mnt/stg/
# rm -rf 2008_07_24
Porém quando existem arquivos com as palavras Santinho ou Vinheta, como a pasta 2008_07_25, eu faço o seguinte:
# cd /mnt/stg/
# cd 2008_07_25
# ls | grep -v Vinheta | grep -v Santinho | xargs rm -rf
O que eu gostaria de fazer:
Os diretórios onde não houvessem subpastas com a palavra SANTINHO e/ou VINHETA, como é o caso da pasta 2008_07_24, pode ser removido.
Onde houverem subdiretórios com estas palavras no nome, deve ser removido tudo, exceto estes diretórios.
Alguma sugestão ?
Eu cheguei a seguir sua orientação, fazendo o seguinte:
#!/bin/bash
ls /mnt/stg/* > lista
cat /mnt/stg/lista
if [ -d /mnt/stg/$linha ]; then
cd /mnt/stg/$linha
ls | grep -v SANTINHO | grep -v VINHETA | xargs rm -rf
fi
Porém não está apagando nada :(