Моя камера производит файлы как IMG_1234.JPG
и MVI_1234.AVI
с метками времени на тех файлах. К сожалению, время не было установлено правильно, и метки времени выключены.
Я хотел бы установить метку времени файла на диске. (не данные EXIF).
Предложенный алгоритм:
1 read file's modify date
2 add delta, i.e. hhmmss (preferred: change timezone)
3 write new timestamp
Существует ли простой способ сделать это? возможно, можно было упростить вычисление, использующее время эпохи (секунды с тех пор), и сделать на скорую руку сценарий оболочки.
touch
может сделать это:
$ ls -l something
-rw-rw-r-- 1 tgs tgs 0 2010-03-22 16:03 something
$ touch -r something -d '-1 day' something
$ ls -l something
-rw-rw-r-- 1 tgs tgs 0 2010-03-21 16:03 something
http://linux.about.com/library/cmd/blcmdl_touch.htm
Для изменения mtime добавить --time=mtime
выполняет итерации по всем файлам в подкаталоге всех: используйте статистику, чтобы получить эпоху файлов / время Unix в секундах, позволить касанию проанализировать сумму как новую дату mtime и записать в файл
#!/bin/sh
for i in all/*; do
touch -m -d "$(stat -c %y "$i") + 3600 sec" "$i"
done
для pythonian подход см. https://stackoverflow.com/questions/1158076/implement-touch-using-python
Используйте jhead:
http://www.sentex.net/~mwandel/jhead/usage.html
Скорректируйте время, сохраненное в заголовке Exif h:mm назад или вперед. Полезный, когда снимавший с набором неправильного времени на камере, такой как после перемещения через часовые пояса, или когда летнее время изменилось.