Script para eliminar todo, PERO conservar un archivo de copia de seguridad más reciente de todos los subdirectorios

Script para eliminar todo, PERO conservar un archivo de copia de seguridad más reciente de todos los subdirectorios

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.

información relacionada