复制一批文件,每个文件名包含日期

需求是这样的,我们需要补一批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到本地,时间戳都没有按照预想显示,需要后续修整

原文地址:https://www.cnblogs.com/Go-Spurs-Go/p/11413853.html