Script para remover todos, MAS retenha um último arquivo de backup de todos os subdiretórios

1

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
    
por Ash 23.07.2018 / 08:51

1 resposta

0

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" irá encontrar uma lista de todos os diretórios, e adicionar um "-t" ao ls fará com que ele classifique em ordem de data - com o mais recente primeiro.

    
por 23.07.2018 / 09:51