代码:
#!/bin/bash
i=1
for file in *.sql.gz #循环遍历当前目录下的所有备份文件
do
year=$(echo `basename $file` | awk -F'_' '{print $3}' | cut -b 1,2,3,4) #截取名称的年份
mon=$(echo `basename $file` | awk -F'_' '{print $3}' | cut -b 5,6) #截取月份
day=$(echo `basename $file` | awk -F'_' '{print $3}' | cut -b 7,8) #截取日期
touch -d "01:31:35 $mon/$day/$year" $file #通过变量修改日期
let i++
done
使用场景:
为了应付海关的检查,补全数据库备份文件,并按照名称修改它们的创建日期
复制了一批数据库备份,用wps批量重命名后格式如下:
copy到服务器里,上面的代码写到脚本里面,放进同个文件夹下执行即可(记得修改脚本权限)
我这边只修改到年月日,时间固定;如果需要精确到时分秒的话,新加变量截取第四段就可以了
ps:脚本执行完毕记得删除,祝各位也能瞒天过海