如何在不更改文件日期(修改日期)的情况下删除所有 EXIF 信息?

How to remove all EXIF informations without changing file date (modified date)?

我有一些带有很多 EXIF/标签信息的 JPEG 照片。

我想在不更改文件日期(修改日期)的情况下删除所有 EXIF 信息。你知道怎么做吗?

我使用的是 macOS Sierra,我知道一些终端命令。 (问题是ExifPurge之类的软件修改了修改日期)

谢谢!

您可以通过以下方式获取文件修改日期:

GetFileInfo -m image.jpg
08/29/2017 13:04:05

因此,如果您想将其保存在名为 saved 的变量中:

saved=$(GetFileInfo -m image.jpg)

现在,删除 EXIF...

并将日期设置回原来的日期:

SetFile -m "$saved" image.jpg

不确定你用什么工具删除EXIF数据,但我上次检查过,如果你使用jhead,它不会改变修改时间:

jhead -de image.jpg

如果是这种情况,则不需要此答案的所有前面部分。因此,也许可以尝试将 jheadcopy 一起使用,仅在单独的测试目录中复制几个文件,如下所示:

jhead -de *.jpg

如果这不能满足您的要求,您需要制作一个小脚本来使用上述方法处理目录中的所有文件。这看起来像这样:

#!/bin/bash
shopt -s nullglob

for f in *.jpg; do
   echo Processing file: $f

   # Save modification date
   saved=$(GetFileInfo -m "$f")

   # DO YOUR EXIF REMOVAL ON FILE "$f" HERE

   # Reset date
   SetFile -m "$saved" "$f"
done