
El siguiente script funciona para una sola carpeta, pero quiero recorrer todos los subdirectorios.
ls /home/user/Desktop/cron_database_hourly/*/*_[012][0-9]*.zip | head -n -1 | \
while read -r f; do rm "$f"; done
Respuesta1
Probablemente podrías salirte con la tuya con algo como (no probado):
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
el bucle "para cada" encontrará una lista de todos los directorios, y agregar una "-t" a ls hará que se ordene por fecha, con el más reciente primero.