1

Следующий скрипт работает для одной папки, но я хочу перебрать все подкаталоги.

ls /home/user/Desktop/cron_database_hourly/*/*_[012][0-9]*.zip | head -n -1 | \
   while read -r f; do rm "$f"; done

1 ответ1

0

Вы могли бы, вероятно, сойти с рук что-то вроде (не проверено) -

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

цикл "for each" найдет список всех каталогов, а добавление «-t» к ls приведет к его сортировке в порядке дат - с самыми последними в первую очередь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .