我有一个包含数千个图片文件的文件夹。每个文件名都以YYYY-MM-DD开头。 “创建日期”字段有时仅与文件名中的日期匹配。我想为每个图片文件做到这一点:
如果文件名的YYYY-MM-DD与创建日期不匹配,则将创建日期设置为文件名的YYYY-MM-DD,并将创建时间设置为11:11:11(HH:MM:SS)。
我怎么能这样做?仅供参考,我使用的是Mac mini和OS X 10.9并且一直在旋转我的车轮。谢谢你的帮助!
答案 0 :(得分:0)
你可以使用像这样的shell命令:
for f in *; do if [[ $(date -jf %s $(stat -f%B "$f") +%F) != ${f:0:10} ]]; then SetFile -d ${f:5:2}/${f:8:2}/${f:0:4} "$f"; mtime=$(GetFileInfo -m "$f"); SetFile -m "${mtime:0:10} 11:11:11" "$f"; fi; done
SetFile和GetFileInfo是开发者工具包的一部分,可以从Xcode的首选项或http://developer.apple.com/downloads/下载。
在date命令中,-j禁用设置时间,-f指定格式字符串,%F是2013-12-31之类的格式。 stat -f指定格式字符串,%B是创建(出生)时间。在GetFileInfo和SetFile中,-m是修改时间,-d是创建时间。