为了账号安全,请及时绑定邮箱和手机立即绑定

将修改日期更改为文件名

将修改日期更改为文件名

慕桂英4014372 2021-04-12 17:14:26
我有许多文件想要更改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})。我究竟做错了什么?
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果我理解不错,那么您希望以自己的格式编写文件名。那么这个脚本呢:


#!/bin/bash


suffix=".jpg"


for file in "IMG*"; do # Careful, the loop will break on whitespace

    fileDate=$(echo $file| cut -d'_' -f 2)

    year=${fileDate:0:4}

    month=${fileDate:4:2}

    day=${fileDate:6:2}


    fileHour=$(echo $file| cut -d'_' -f 3 | sed -e s/$suffix//)

    hour=${fileHour:0:2}

    min=${fileHour:2:2}

    secs=${fileHour:4:2}

    newName="$year-$month-$day $hour:$min:$secs$suffix"

    mv $file "$newName"

done


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信