gpt4 book ai didi

linux - 如何在 Linux 中从文件名更改文件的时间戳?

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:01 33 4
gpt4 key购买 nike

我有一组从我参加的巡演中获得的图像。文件名嵌入了时间戳(例如,“2015-07-04-15-02-14.jpg”)。遗憾的是,它们都标有下载日期的时间/日期,而不是拍摄照片的时间。为了将它们整合到我在游览期间拍摄的照片中,我想更改给定文件名的时间戳。 (这与人们通常需要的相反。)

文件都会在自己的目录下,所以我需要读取整个目录,根据文件名中的字符来touch文件。

我不是 Linux 脚本专家,但如果有人能帮助我找出执行此操作的代码,我将不胜感激。谢谢。

最佳答案

您可以使用相当简单的 shell 脚本来完成此操作,该脚本使用您的命名约定来获取 touch 的时间戳值。命令,例如,

#!/bin/sh
for file in $*
do
test -f "$file" || continue
ts=$(basename "$file" .jpg | sed -e 's/-//g')
touch -t $ts $file
done

脚本使用basename去除“.jpg”后缀,然后使用 sed删除所有破折号。您剩余的数字恰好与 touch 使用的时间戳值的顺序相同,因此它应该可以工作。

你会像这样使用脚本

./myscript *.jpg

如果你想看到它做任何事情(除了可能的错误信息),你可以用 ls 添加一行(出于某种原因,GNU touch 缺少冗长的 -v 选项由可比较的实用程序提供,如 lncp):

ls -l $file

关于linux - 如何在 Linux 中从文件名更改文件的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31351739/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com