【问题标题】:Setting file modification date from exif date从 exif 日期设置文件修改日期
【发布时间】:2016-11-04 13:18:00
【问题描述】:

为了将图像的文件修改日期设置为 exif 日期,我尝试了以下方法: exiftool '-FileModifyDate<DateTimeOriginal' image.jpg 但这给了我一个关于 SetFileTime 的错误。 所以也许 exiftool 不能在 linux 中做到这一点。

我可以合并吗 exiftool -m -p '$FileName - $DateTimeOriginal' -if '$DateTimeOriginal' -DateTimeOriginal -s -S -ext jpg . 带有“touch --date ...”?

【问题讨论】:

    标签: touch exiftool filetime


    【解决方案1】:

    this Exiftool Forum post

    那里使用的命令是(注意使用反引号,而不是单引号):

    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 标记格式错误或其中没有完整的日期/时间信息。

    【讨论】:

    • exiftool test.jpg / /ExifTool Version Number : 10.23 /File Access Date/Time : 2016:11:06 21:44:15+01:00 /File Permissions : rwx------ /Modify Date : 2015:08:21 18:51:28 /Exif Version : 0230 /Date/Time Original : 2015:08:04 10:00:35 /Create Date : 2015:08:04 10:00:35
    • exiftool 不起作用的原因是图片在我的 NAS 的 samba 共享中。
    【解决方案2】:

    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
    ...
    

    对我来说,在文件名旁边输出时间戳就足够了,但考虑到一点日期时间格式,它可以很容易地用来“触摸”文件以修改它们的文件系统时间戳。

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      相关资源
      最近更新 更多