Задача: у нас есть операционная система Linux (Ubuntu, Mint, ROSA, Arch, Debian, …) и папка с фотографиями, в этой папке много подпапок с фотографями, в подпапках могут быть еще подпапки до неограниченного уровня вложенности. В EXIF-данных большинства фотографий записано время их снятия по данным фотокамеры, однако файловый менеджер думает, что файл был создан в другое время, например, когда вы его откуда-то скопировали. Это неудобно, например, нельзя отсортировать фотографии по дате создания не выходя из файлового менедежра.
Давайте сделаем так, чтобы дата создания файла *.jpg каждой фотографии стала совпадать с датой съемки, записанной в мета-данных EXIF.
Устаналиваем утилиту jhead:
На Debian/Ubuntu/ALT Linux/Mint/Deepin:
sudo apt-get install jhead
На Росе:
sudo urpmi jhead
Делаем скрипт:
Открываем для редактирования файл скрипта, например:
sudo nano /usr/local/bin/jpg-dates
Туда вставляем следующий текст:
#!/bin/bash dir0="$(pwd)" random="$(date +%s)" file_list="/tmp/files_jpg_${random}.list" find "$dir0" -type f -iname "*.jpg" | tee "$file_list" while read -r line do jhead -ft "$line" done < "$file_list" rm -fv "$file_list"
Нажимаем Ctrl+O, Ctrl+X для сохранения и выхода.
Делаем скрипт исполняемым: sudo chmod +x /usr/local/bin/jpg-dates
Затем просто открываем терминал в папке с фотографиями, даем команду jpg-dates
, и все фотографии *.jpg и *.JPG в текущей папке и всех ее подпапках станут созданы в файловой системе тогда, когда были сняты.
Альтернативный вариант.
exiv2 -t -r'%Y%m%d_%H%M%S-:basename:' *.JPG
И станет можно «отсортировать фотографии по дате создания не выходя из файлового менедежра» даже не выбирая сортировку по дате создания.