Сортировка jpg в соответствии с датой создания и конвертирование в одиночный pdf

На Mac, как я могу через терминал сортировать около 2400 jpg соответствии с их датой создания (т.е. stat -f %SB ) и преобразовать их в этом порядке в один PDF?

Что делать, если один jpg был создан сегодня в 11:10 вечера, а второй вскоре после этого в ту же минуту в 23:10? Есть ли секунды в дате создания, которые можно принять во внимание?

2 Solutions collect form web for “Сортировка jpg в соответствии с датой создания и конвертирование в одиночный pdf”

Это зависит от файловой системы. Например, на моем хосте я использую четвертую расширенную файловую систему (ext4) и stat сообщает об этом файлам:

 $ touch foo; stat foo; rm foo File: 'foo' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fc00h/64512d Inode: 262155 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1000/ ownerusername) Gid: ( 1000/ ownerusername) Access: 2017-06-21 14:28:16.150323827 -0700 Modify: 2017-06-21 14:28:16.150323827 -0700 Change: 2017-06-21 14:28:16.150323827 -0700 Birth: - 

Таким образом, вы можете использовать последнее модифицированное время, поскольку время создания является чем-то неправильным .

 find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}' 

Эта несколько громоздкая конструкция даст вам список файлов по порядку по времени последней модификации (если у вас нет файлов с | в их именах).

После того, как вы просмотрели этот список, вы можете использовать инструмент convert Imagemagick для сборки PDF:

 convert <<list of files>> outputfile.pdf 

Или, чтобы сделать это все сразу:

 convert $(find /path/to/images -type f -print0 -name \*.jpg | xargs -0 stat -c "%y|%n" | sort | awk -F'|' '{print $2}') outputfile.pdf 

Установите ImageMagick. Предполагая, что изображения в формате JPG находятся в ~/images а имена файлов не содержат пробелов (или любой из \[*? ), И у вас есть каталог ~/combined :

 convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.jpg 

или

  convert -combine -append $(ls -tr ~/images/*.jpg) ~/combined/all.pdf 

Если изображения не того же размера, вы получите предупреждения. -append объединяет изображения сверху вниз. Изменить на +append и изображения объединить слева направо.

Время: хотя ls -l показывает время до часа: минута, Linux отслеживает доступ, изменение и возраст / изменение времени до nano секунды, я считаю. Поэтому сортировка по ls -tr составляет даже доли секунд.

  • Сортировка файлов css по свойству цвета
  • Алфавит в именах файлов с помощью сортировки?
  • Как узнать общие элементы между двумя файлами?
  • Перемещение строки с выхода на фронт вывода или пользовательское переупорядочение
  • Сортировка точек монтирования по времени монтирования
  • Как включить команду Diff в скрипт bash с подсказкой
  • Как я могу сортировать файл .txt по двум столбцам?
  • Переупорядочение файла на основе второго файла
  • Как установить ls -lh со временем и длинным форматом даты в порядке убывания в .bashrc
  • Выберите наиболее подходящее имя файла
  • Добавить слова в список слов с помощью sort -u avoinding duplicata
  • Linux и Unix - лучшая ОС в мире.