您的位置:首页 > 运维架构 > Linux

linux 之 date 命令【文件备份的时候可以用到此】

2015-04-28 09:23 399 查看

文章来源:

http://blog.chinaunix.net/uid-7754265-id-2561605.html

题目:获取昨天的时间

在备份的时候,通常需要备份前天的文件,这些文件是以日期命名的。

date命令可以显示当前时间,如果知道这个,你肯定会想到用脚本来实现,下面的脚本

确实可以获取昨天的日期,而且准确:

################ SHELL TO GET THE DATE OF YESTERDAY ###########

month=`date +%m`

day=`date +%d`

year=`date +%Y`

month=`expr $month + 0`

day=`expr $day - 1`

if [ $day -eq 0 ]; then

month=`expr $month - 1`

if [ $month -eq 0 ]; then

month=12

day=31

year=`expr $year - 1`

else

case $month in

1|3|5|7|8|10|12) day=31;;

4|6|9|11) day=30;;

2)

if [ `expr $year % 4` -eq 0 ]; then

if [ `expr $year % 400` -eq 0 ]; then

day=29

elif [ `expr $year % 100` -eq 0 ]; then

day=28

else

day=29

fi

else

day=28

fi

;;

esac

fi

fi

YY=`printf "%04d" $year`

MM=`printf "%02d" $month`

DD=`printf "%02d" $day`

YESTERDAY=$YY$MM$DD

############################## END ##############################

看起来是很好,也学到了不少shell的知识。 但是,如果有新的需求,要你获取两天前

、一周前日期时,你怎么来做呢? 困扰了吧?按这个逻辑下去真不知道如何写这个

shell。

但如果你熟悉了date命令,你会发现,一条简单的shell就可以解决你的问题:

date --date="1 days ago" +%Y%m%d

两天前的以此类推

date --date="2 days ago" +%Y%m%d

蓦然回首决定很好笑,不过倒也是尝到了其中的乐趣,有了这样的经历,印象更深刻。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/7998/showart_86654.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐