Akka JVM темы против OS потоков при выполнении IO

Это комбинация ответа ceving's и anubhava. Оба решения не работают для меня. Поскольку я искал сценарий, который должен запускаться каждый день для резервного копирования файлов в архиве, я хотел избежать проблем с ls (кто-то мог бы сохранить какой-нибудь смешной файл имени в моей резервной папке сохранения). Поэтому я изменил упомянутые решения в соответствии с моими потребностями. Решение Ceving удаляет три новых файла - не то, что мне нужно, и их спрашивали.

Мое решение удаляет все файлы, за исключением трех новейших файлов.

find . -type f -printf '%T@\t%p\n' |
sort -t $'\t' -g | 
head -n -3 | 
cut -d $'\t' -f 2- |
xargs rm

Некоторое объяснение:

find перечисляет все файлы (не каталоги) в текущая папка. Они распечатываются с отметками времени. sort сортирует строки на основе метки времени (самая старая сверху). head печатает верхние строки, вплоть до последних 3 строк. cut удаляет отметки времени. xargs запускает rm для каждого выбранного файла.

Для проверки моего решения:

(
touch -d "6 days ago" test_6_days_old
touch -d "7 days ago" test_7_days_old
touch -d "8 days ago" test_8_days_old
touch -d "9 days ago" test_9_days_old
touch -d "10 days ago" test_10_days_old
)

Это создает 5 файлов с разными временными метками в текущей папке. Запустите это сначала и код для удаления для проверки кода.

15
задан Matthias 23 May 2017 в 06:19
поделиться