复制一批文件,每个文件名包含日期
需求是这样的,我们需要补一批excel表(目标时间段内每天一个),每个文件内容都差不多,一个个手动复制显然太low,windows系统又不会写批处理脚本,所以萌发了linux上写脚本修改的想法。
先捋一下需求
- 文件名包含那一天的日期
- 跳过周六周日
- 最好excel的时间戳也是当天的,计划创建时间是9:00到9:30随机,修改时间是18:00到18:30随机
脚本如下
#!/bin/bash
time1=`date -d $1 +%s`
time2=`date -d $2 +%s`
time3=$( date -d `date +%F` +%s)
dur1=`echo "(${time3}-${time1})/86400"|bc`
dur2=`echo "(${time3}-${time2})/86400"|bc`
for n in `seq ${dur2} ${dur1}`
do
w_num=`date -d "-$n day" +%w`
if [ ${w_num} -eq 6 -o ${w_num} -eq 0 ];then
continue
else
dat=`date -d "-$n day" +%Y%m%d`
cd /tmp/oo
cp xuy.xlsx xuy.${dat}.xlsx
second1=$[$RANDOM%60]
if [ $second1 -lt 10 ];then
second1=0${second1}
fi
second2=$[$RANDOM%60]
if [ $second2 -lt 10 ];then
second2=0${second2}
fi
min1=$[$RANDOM%30]
if [ $min1 -lt 10 ];then
min1=0${min1}
fi
min2=$[$RANDOM%30]
if [ $min2 -lt 10 ];then
min2=0${min2}
fi
touch -a xuy.${dat}.xlsx -t ${dat}09${min1}.${second1}
touch -m xuy.${dat}.xlsx -t ${dat}18${min2}.${second2}
fi
done
遗留问题,无论是打包保存到本地,还是sz到本地,时间戳都没有按照预想显示,需要后续修整

浙公网安备 33010602011771号