Используя сценарий оболочки для сортировки файлов, удалите старые файлы

61
2

У меня есть папка с некоторыми нормальными файлами. Я хочу отсортировать их по их модифицированной дате, сохранить последние 20 записей, а с того, что осталось, стирает что-либо старше 20 дней.

Вот мой код для удаления файлов размером> 20 дней.

#!/bin/bash
cleanup="../some path/"

find $cleanup/*gz -mtime +20 -exec rm {} \;

Однако я не знаю, как сохранить последние измененные файлы, а затем удалить. Как это исправить?

спросил(а) 2021-01-19T17:05:55+03:00 3 месяца, 2 недели назад
1
Решение
63

Вы можете фильтровать 20 имен файлов с помощью

awk 'NR > 20' 

Полная команда:

find ...... | awk 'NR > 20' | xargs -r  rm

Например

seq 30 | xargs -i echo 'file{}' | awk 'NR > 20' | xargs  -r rm

ответил(а) 2021-01-19T17:05:55+03:00 3 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема