gpt4 book ai didi

linux - 将修改日期更改为文件名

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

我有很多文件想在 Linux 中更改修改日期。修改日期保存在文件名中。

所以我有文件,其名称是例如“IMG_20180101_010101.jpg”,但修改日期是今天。我想将修改日期更改为 2018-01-01 01:01:01,如文件名中所示。我试过查找和触摸:

find . -iname 'IMG*' -print | while read filename; do touch -t {filename:7:8} "$filename"; done

当我这样做时,我总是会收到错误消息(“无效的日期格式:{filename:7:8}”)。

我做错了什么?

最佳答案

如果你想根据文件名设置文件时间戳,你可以试试这个:

find -type f -name "IMG_*" -exec bash -c 'touch -t $(sed "s/.*IMG_\([0-9]\{8\}\)_\([0-9]\{4\}\)\([0-9]\{2\}\).jpg$/\1\2.\3/" <<< "$1") "$1"' _ {} \;

touch 手册页中所述,选项 -t 需要格式 [[CC]YY]MMDDhhmm[.ss] .这就是 sed 命令的目的。

关于linux - 将修改日期更改为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50173086/

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