Linux/оболочка: изменитесь файл изменяют метку времени относительно?

Моя камера производит файлы как 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

Существует ли простой способ сделать это? возможно, можно было упростить вычисление, использующее время эпохи (секунды с тех пор), и сделать на скорую руку сценарий оболочки.

20
задан 22.08.2014, 16:52

3 ответа

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

38
ответ дан 07.12.2019, 10:08

выполняет итерации по всем файлам в подкаталоге всех: используйте статистику, чтобы получить эпоху файлов / время 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

2
ответ дан 07.12.2019, 10:08

Используйте jhead:

http://www.sentex.net/~mwandel/jhead/usage.html

Скорректируйте время, сохраненное в заголовке Exif h:mm назад или вперед. Полезный, когда снимавший с набором неправильного времени на камере, такой как после перемещения через часовые пояса, или когда летнее время изменилось.

0
ответ дан 07.12.2019, 10:08

Теги

Похожие вопросы