
$dir_name= # 要删除的文件所在文件夹
$file_name= #要删除文件的文件名,可使用等通配符
find $dir_name -name "$file_name" -mtime +3 | xargs rm -rf #删除3天前的符合条件的文件
date -d" -11 month " +%Y%m%d
获取到当天的日期
然后再判断月份,如果是1,3,5,7,8,10,12
那么把日期替换成31
如果是4,6,9,11
那么把日期替换成30
如果是2
还得去判断是否为闰年
是闰年就29
不是就28
#!/bin/bash
date_day=`date +%d`
for ((i=1;i<=$date_day;i++))
do
date +%Y-%m-$i
done
执行效果如下:
#判断当前的年份是否为闰年
sleapyear()
{
r4=`expr $1 % 4`
r100=`expr $1 % 100`
r400=`expr $1 % 400`
if [ r4 -eq 0 and r100 -ne 0 ]; then
return 1
elif [ r400 -eq 0 ]
then
return 1
else
return 0
fi
}
#获取前一天的日期,在此函数中会调用判断闰年的函数
yesterday()
{
day=`echo "$3 - 1"|bc`
month=$2
year=$1
if [ $day -eq 0 ]; then
month=`echo "$2 - 1"|bc`
isleapyear $1
leap=$
case $month in
0|1|3|5|7|8|10|12 )
day=31;;
4|6|9|11 )
day=30;;
2 )
if [ $leap -eq 1 ]; then
day=29
else
day=28
fi;
esac
if [ $month -eq 0 ]; then
month=12
year=`echo "$1 - 1"|bc`
fi
fi
date=`printf "%s%02s%02s" $year $month $day`
}
#设置传入yesterday函数的参数
set `date +%C%y\ %m\ %d`; YEAR=$1; MONTH=$2; DAY=$3
#调用yesterday,传入三个参数,分别为当前年,当前月,当前日
yesterday $YEAR $MONTH $DAY
echo $date
看看帮助吧,man
date
格式中就是两个
减号
,date
--date=STRING
等同于,date
-d
STRING
两个减号后面是更易于理解的描述。
$((
))
是取值运算符。`
`
表示优先做完包含的内容,指示优先级用的。
要学会拆分开来看,化繁为简。
这句话意思就是,求出
date
--date="$year$bir"
+%s
与
date
+%s
的时间差(单位:秒),最后换算出天数。
date
--date="$year$bir"
+%s
表示指定时间与UTC时间
1970-01-01
00:00:00
之间相差的秒数
date
+%s
表示当前时间与UTC时间
1970-01-01
00:00:00
之间相差的秒数。
最后
total_d
就表示当前时间与指定时间之间相差的天数。
如果是获取前一周的日期(当前日期回退一周)可以用这个:
date -d "-7 days" +"%Y-%m-%d"
或者:date -d "-1 weeks" +"%Y-%m-%d"
1、date +%w
%w day of week (06); 0 is Sunday
2、如果星期2-6,上一个工作日肯定就是
t1=`date -d yesterday`
或者
t2=`date -d -1day`
3、如果星期天,上一个工作日肯定就是
t3=`date -d -2day`
4、如果星期1,上一个工作日肯定就是
t4=`date -d -3day`
5、法定节假日根据实际情况算吧
6、实例
#!/bin/sh
week=`date +%w`
case "$week" in
0)
last_work_day=`date -d -2day`
;;
1)
last_work_day=`date -d -3day`
;;
)
last_work_day=`date -d -1day`
;;
esac
echo $last_work_day
以上就是关于求解!!! shell脚本: 要求 判断指定文件最后修改的日期是否是今天,或者判断n天之内是否被修改。。全部的内容,包括:求解!!! shell脚本: 要求 判断指定文件最后修改的日期是否是今天,或者判断n天之内是否被修改。。、shell中如何获取以当天日期开始的前11个月最后一天的日期、shell中如何获取当前月1号到当天的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)