我有一些图像文件的日期错误(创建文件的日期,ls -l
显示的值),因为它在相机中设置错误。如何在更改目录中所有* .jpg文件的脚本中将日期增加两天? Bash,Perl,什么曾经在Linux机器上运行并且适合这项工作都没关系。
在网上搜索我发现touch
用于操纵日期,但我没有找到将其增加两天的方法,同时保留了时间。
谢谢。
答案 0 :(得分:5)
我想这不是修改文件的日期(就像所有其他响应一样),你想修改元数据,所以请看这个页面:http://savvyadmin.com/fixing-dates-in-image-exif-tag-data-from-linux/ < / p>
您必须使用jhead(或exiv2),如下所示:
jhead -ts2003:01:01-00:00:00 image.jpg
最后但并非最不重要的是,有一个特殊的开关-ta
来直接修改日期:ex。两天后:
for i in *.jpg; do jhead -ta+48:00 "$i"; done
答案 1 :(得分:2)
使用touch
更改模态时间。
使用date
操作日期。
未测试:
for f in *jpg; do
mtime=`date -r $f`
nextt=`date "$mtime + 2 days"`
touch -d "$nextt" $f
done
答案 2 :(得分:1)
touch
是工作的工具。
for file in P123*.JPG ; do
touch --date="$(date -r $file) + 2 days" $file
done