Этот небольшой сценарий оболочки будет перебирать каждый файл в текущем каталоге и сравнивать его отметку времени последнего изменения с диапазоном, созданным при запуске
и end
отметки времени (здесь 10 октября). Соответствующие файлы добавляются в массив files
, и если в массиве есть какие-либо файлы, он вызывает для них convert
. Измените -gt 0
на -gt 1
, если вы хотите иметь как минимум два файла (или больше).
Обратите внимание, что время создания обычно не сохраняется в атрибутах файла (Unix), поэтому этот метод можно обмануть простым касанием 1476158400.jpg
, которое заставит старый файл выглядеть новым. См. Ниже второй вариант.
#!/usr/bin/env bash
start=$(date +%s -d 'Oct 10 2016')
end=$(date +%s -d 'Oct 11 2016')
files=()
for f in *
do
d=$(stat -c%Z "$f")
[[ $d -ge $start ]] && [[ $d -le $end ]] && files+=("$f")
done
[[ ${#files[*]} -gt 0 ]] && convert -delay 10 -loop 0 "${files[*]}" animation.gif
В качестве альтернативы, если имена файлов сами по себе кодируют метку времени создания, вы можете использовать цикл грубой силы, чтобы найти их:
start=$(date +%s -d 'Oct 10 2016')
end=$(date +%s -d 'Oct 11 2016')
files=()
for((i=start;i<=end;i++)); do [[ -f "${i}.jpg" ]] && files+=("${i}.jpg"); done
[[ ${#files[*]} -gt 0 ]] && convert -delay 10 -loop 0 "${files[*]}" animation.gif
Если вы используете RHEL/CentOS 7, Вы, вероятно, захотите 7 пакетов по адресу http://nginx.org/packages/rhel/7/x86_64/RPMS/, не те, что для RHEL 6.