Linux 如何修改文件';今天是什么日子?
我有一些图像文件的日期错误(文件创建日期,由Linux 如何修改文件';今天是什么日子?,linux,perl,bash,shell,date,Linux,Perl,Bash,Shell,Date,我有一些图像文件的日期错误(文件创建日期,由ls-l显示的值),因为它在相机中设置错误。如何在更改目录中所有*.jpg文件的脚本中将日期增加两天?Bash、Perl,任何在Linux机器上运行并且适合该工作的东西都可以 在网上搜索时,我发现touch是用来操纵日期的,但我没有找到一种方法,在保留时间的同时,将日期增加两天 谢谢。用于更改时间 用于在日期操作 未经测试: for f in *jpg; do mtime=`date -r $f` nextt=`date "$mtime + 2
ls-l
显示的值),因为它在相机中设置错误。如何在更改目录中所有*.jpg文件的脚本中将日期增加两天?Bash、Perl,任何在Linux机器上运行并且适合该工作的东西都可以
在网上搜索时,我发现touch
是用来操纵日期的,但我没有找到一种方法,在保留时间的同时,将日期增加两天
谢谢。用于更改时间
用于在日期操作
未经测试:
for f in *jpg; do
mtime=`date -r $f`
nextt=`date "$mtime + 2 days"`
touch -d "$nextt" $f
done
touch
是作业的工具
for file in P123*.JPG ; do
touch --date="$(date -r $file) + 2 days" $file
done
我猜您不想修改文件的日期(就像这次所有其他响应一样),而是想修改元数据,因此请参见本页: 您必须像这样使用(或exiv2):
jhead -ts2003:01:01-00:00:00 image.jpg
最后但并非最不重要的一点是,有一个特殊的开关
-ta
直接修改日期:例如,2天后:
for i in *.jpg; do jhead -ta+48:00 "$i"; done
请给出显示日期编码位置的文件名/内容示例。并显示您尝试的内容。编辑问题以提供更多信息。链接后面的touch文档建议您需要使用-t或-d选项使此工作人员成为我编辑的帖子,并在一行中为每个JPG文件添加2天+1:是的,必须修改元数据,而不是文件日期本身。不,我真的是指文件日期。但是,下一步是更改元数据日期。到目前为止我还没有想到,所以谢谢你的提示。我想这取决于你是如何组织你的fotografs文件日期还是元数据中的日期是重要的。我不得不修改你的解决方案使其工作,但最后我还是设法做到了。工作解决方案是:
用于*.JPG中的文件;请勿触摸-d“`date-r$file'+%F%T'`2天”$file;完成
您的解决方案总是给出错误:“无效日期”,这就是为什么我添加了格式化选项+%F%T
,而+
给出了完全奇怪的结果(+2天
增加了一天,+3天
增加了一天减去1小时)。@Twonky:您有非英语的区域设置
有效吗?