从 iPhone 传输图像时不知何故弄错了文件日期。我想从 EXIF 数据中设置它们。
我已经找到了解决方案,但无法将其转换为批处理作业。请随意提供帮助,也许其他用户会觉得它有用。
答案1
find . -type f -iname "*.jpg" -print0 | xargs -0 -n1 -I % sh -c 'touch % -d "$(file %|grep -oP "datetime=\K[^,]*"|sed -e "s/:/-/"|sed -e "s/:/-/")"'
答案2
我用这个命令解决了它。
identify -verbose <file> |egrep "Image:|exif:DateTimeDigitized:" |sed '{N;s,Image: \(.*\)\n.*exif:DateTimeDigitized: \(.*\),touch -d "\2" \1,}'|sed 's,2017:10:,2017-10-,'
我无法将其转换为批处理作业,因为sed
它需要处理多行,而这会与处理列表的不同方法(xargs,简单列表......)发生冲突。
只需将其通过管道传输到 bash 来执行或复制和粘贴。