Mac命令行:如何使用实际内容创建日期重命名所有图片

3
当我们查看图片文件的信息(cmd + I)时,会看到一个“内容创建”日期。我该如何使用这个日期来批量重命名图片呢?
2个回答

6
mdls 命令可以显示图片文件的很多有用信息,包括 kMDItemContentCreationDate。请注意这不是创建日期。因此,如果照片是在手机上拍摄然后复制了几次,您仍然可以获得照片实际拍摄日期(重命名照片非常有用)。
以下是一个脚本,在当前文件夹中为每个文件使用 `kMDItemContentCreationDate` 给出的日期重新命名文件,格式为 YYYY-MM-DD_HH-mm-ss.previousFileExtension:
for f in *.*; do 
   mv "$f" "$(mdls -name kMDItemContentCreationDate "$f" | sed s/kMDItemContentCreationDate...// | sed s/.+0000// | sed s/:/-/g | sed s/\ /_/g).${f##*.}"; 
done

虽然很好,但在运行命令后,我发现图片数量比之前少了一些,可能是由于重复的日期时间和/或没有设置kMDItemContentCreationDate的文件引起的问题。 - undefined
这在 macOS Big Sur 上完美运行!谢谢 - undefined

-1
alexsedlex有一个很好的答案,但我在mdls命令中添加了--raw标志,然后就不需要使用sed了,而是可以使用cut。所以这只是一个稍微简单的变体。
for f in *.* 
do 
  creation_date=$(mdls --raw -name kMDItemContentCreationDate "$f" | cut -c 1-10 )
  new_file_name="${creation_date}_$f"
  mv -v "$f" "$new_file_name"; 
done

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接