
O script a seguir funciona para uma única pasta, mas quero iterar por todos os subdiretórios.
ls /home/user/Desktop/cron_database_hourly/*/*_[012][0-9]*.zip | head -n -1 | \
while read -r f; do rm "$f"; done
Responder1
Você provavelmente poderia se safar com algo como (não testado) -
for each in `find -type d /home/usr/Desktop/cron_database/hourly`
do
ls -t $each/_[012][0-9]*.zip | head -n -1 | \ while read -r f;
do
rm "$f"
done
done
o loop "for each" encontrará uma lista de todos os diretórios, e adicionar um "-t" a ls fará com que ele seja classificado em ordem de data - com o mais recente primeiro.