-1

我有一些日期错误的图像文件(文件创建日期,由 显示的值ls -l),因为它在相机中设置错误。如何在更改目录中所有 *.jpg 文件的脚本中将日期增加两天?Bash,Perl,曾经在 Linux 机器上运行并且适合这项工作的东西都可以。

搜索我发现touch用于操纵日期的网络,但我没有找到一种方法将其增加两天,同时保留时间。

谢谢你。

4

3 回答 3

5

我想您不想修改文件的日期(就像@this 的所有其他响应一样),而是想修改元数据,所以请参阅此页面:http ://savvyadmin.com/fixing-dates-in-image- exif-tag-data-from-linux/

你必须像这样使用jhead(或exiv2):

jhead -ts2003:01:01-00:00:00 image.jpg

最后但同样重要的是,有一个特殊的开关-ta可以直接修改日期:例如。2天后:

for i in *.jpg; do jhead -ta+48:00 "$i"; done
于 2013-07-08T20:18:45.657 回答
2

用于touch更改 modtime。

用于date对日期进行操作。

未经测试:

for f in *jpg; do
  mtime=`date -r $f`
  nextt=`date "$mtime + 2 days"`
  touch -d "$nextt" $f
done
于 2013-07-08T20:15:10.550 回答
1

touch是工作的工具。

for file in P123*.JPG ; do
    touch --date="$(date -r $file) + 2 days" $file
done
于 2013-07-08T20:16:33.703 回答