为了将图像的文件修改日期设置为退出日期,我尝试了以下操作:exiftool '-FileModifyDate<DateTimeOriginal' image.jpg
但这给了我一个关于SetFileTime的错误。所以exiftool在linux中可能做不到。
可以合并吗exiftool -m -p '$FileName - $DateTimeOriginal' -if '$DateTimeOriginal' -DateTimeOriginal -s -S -ext jpg .
和"touch -date…"?
查看这个Exiftool论坛帖子。
这里使用的命令是(注意使用反引号,而不是单引号):
touch -t `exiftool -s -s -s -d "%Y%m%d%H%M.%S" -DateTimeOriginal TEST.JPG` TEST.JPG
但是我对你的错误很好奇。Exiftool应该能够在Linux上设置FileModifyDate(尽管FileCreateDate是另一回事)。您使用的是什么版本的Exiftool (exiftool -ver
检查)?
另一种可能性是DateTimeOriginal
标记是畸形的或没有完整的日期/时间信息。
FWIW, StarGeek的答案是正确方向的一个很好的指针,但它不适合我:我的许多照片被报告为"无效的EXIF文本编码"(与那些"很好"相比没有明显的区别),即使exiftool somefile.jpg
会清楚地输出有效的"修改日期"。
我是这样做的:
for i in *.jpg ; do d=`exiftool $i | grep Modify | sed 's/.*: //g'` ; echo "$i : $d" ; done
…生成如下输出:
CAM00786.jpg : 2013:11:19 18:47:27
CAM00787.jpg : 2013:11:25 08:46:08
CAM00788.jpg : 2013:11:25 08:46:19
...
对我来说,在文件名旁边输出时间戳就足够了,但是只要有一点日期时间格式,就可以很容易地"触摸"文件来修改它们的文件系统时间戳。