Archlinux - удаление файлов в другом подкаталоге с именем даты

306
Tweek

Мне нужна ваша помощь, чтобы найти способ cron-удалить некоторые файлы в нескольких подкаталогах на основе формата даты в имени.

Я использую этот скрипт в YouTube-DL:

youtube-dl --yes-playlist --download-archive archive.txt --continue --ignore-errors --no-overwrites --dateafter now-1week -o '%(uploader)s/%(upload_date)s - %(title)s' -a rss.txt 

С помощью сценария у меня есть это:

Videos │ rss.txt │ archive.txt  │ └───Artiste_Youtube_01 │ │ 20170906 - Title.mkv │ │ YYYYMMDD - Title.mkv |  └───Artiste_Youtube_02 │ YYYYMMDD - Title.mkv │ YYYYMMDD - Title.mkv 

И я хочу автоматически удалить MKV старше 1 недели + 1 день.

Я вижу это:

find ./my_dir -mtime +10 -type f -delete 

Это хорошо для даты создания, но не для названной даты файла.

Вы можете мне помочь? Благодарю.

0

1 ответ на вопрос

0
xenoid

Вы должны сравнить префикс имени с датой. Вы можете получить деталь сравнения легко с: date -d '-10 days' +%Y%m%d. Затем вы перебираете файлы:

cutDate=$(date -d '-10 days' +%Y%m%d) for f in */*.mkv do prefix=$(sed -r 's:.*/([0-9]) -.*:\1:' <<<"$f") [[ $prefix < $cutDate ]] && rm "$f" done 

Если у вас есть больше уровней подкаталогов, добавьте больше звездочек в forшаблон: for f in */*/*.mkv

( предупреждение: не проверено )

Спасибо за ответ. Но не работает, потому что я использую подпапку ... Tweek 6 лет назад 0
Я попытался с другой структурой папок, у меня есть это ... [ссылка] (https://framapic.org/1OO50VrhvtI5/3Nq7IHdQMM2Y) Tweek 6 лет назад 0
Обновленный ответ: добавлены двойные кавычки в команду `rm` и используется больше звездочек, если больше уровней каталогов. xenoid 6 лет назад 0

Похожие вопросы