LINUX.ORG.RU

Команда find

 ,


0

1

В папку каждую пять секунд на протяжении всего дня записываются определенные файлы со штампом даты и времени, например screen_2022-12-01_09-51-39.jpeg, как командой find вывести файлы с 8 часов до 12?

Если конкретно, то есть скрипт, который командой ffmpeg создает одно видео со всеми картинками в папке, но нужно чтобы это было с 8 до 12 часов, а все остальное исключалось


Команда ffmpeg: ffmpeg -framerate 5 -pattern_type glob -i ‘/mnt/screen/123/*.jpeg’ -c:v libx264 -pix_fmt yuv420p /mnt/video/done/123_$(date +%F_%H-%M-%S).mp4

kairo
() автор топика

То есть вместо /mnt/screen/123/*.jpeg я хочу прописать find с условием, в этом заключается идея

kairo
() автор топика
Ответ на: комментарий от undef

Спасибо, то что и нужно! Не подскажите до кучи, какой параметр тут дописать, чтобы все остальное, не попадающее под эти временные рамки - удалялось?

kairo
() автор топика
Ответ на: комментарий от kairo

Примерно так же

find dir \( -not -newermt 'dec 01, 2022 08:00' -o -newermt 'dec 01, 2022 12:00' \) -delete

Ман к find достоин прочтения.

undef ★★
()
Ответ на: комментарий от kairo

Ты запиши себе, что этот find смотрит не на имя файла, а на дату его изменения (mtime). Скопируешь их куда-то с изменением mtime и работать не будет

futurama ★★★★★
()
Ответ на: комментарий от undef

Это не решение задачи ТСа. Ему надо парсить, иначе беда.

Anoxemian ★★★★★
()
Ответ на: комментарий от kairo

Вы уточните, вам по временной метки файла или по его имени? И «всё остальное удалялось» — в границах суток, или вобще все отстальные файлы удалялись, оставались только за одни сутки?

И, если нужно по имени, то это и bash способен выделить, find тут не нужен.

screen_2022-12-01_0[89]-*.jpeg

screen_2022-12-01_1[01]-*.jpeg

И результаты поиска должны быть отсортированы?

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.