Esses dias precisei construir um procedimento onde fosse apagado os dados de um diretório exceto um subdiretório, porém este subdiretório seus dados teriam que ser atualizados, para isso usei uma combinação dos comandos rm, chattr, o uso do chattr é muito interessante
se usarmos : chattr +i diretorio
vc nem que tenha todos os diretiros conseguirá apagar o diretório
usando : chattr -i diretorio vc retira esta condição
para listar qualquer dado que esteja com o chattr vc pode usar : lsattr que o sistema irar aprensentar todos os dados.
em resumo ficou assim
criei um arquivinho em : /etc/apagapublico
no crontab coloquei
15 19 * * 1-5 /bin/rm -rf /etc/apagapublico
dentro do arquivo ficou
#/bin/sh
clear
echo “Apagando dados do Publico”
rm -rf /dados/compartilhado/publico/*
chattr -R -i /dados/compartilhado/publico/diretorio
rm -rf /dados/compartilhado/publico/diretorio
cp -R /opt/usuario/diretorio/ /dados/compartilhado/publico/
chattr -R +i /dados/compartilhado/publico/diretorio
pronto
tentei usar a combinação de comandos abaixo porém não consegui, mas segue outras loucuras de comandos
find ! -type d -exec rm ‘{}’ \;
find ! /dados/compartilhado/publico/* | grep [^t\.diretorioanaoapagar]$ -exec rm ‘{}’ \;
find ! -type d | xargs rm
for i in `find /dados/compartilhado/publico/* | grep [^t\.diretorioanaoapagar]$`; do rm -rf $i; done
