首页 > Linux操作系统 > Linux操作系统 > Unix-Linux 日期处理
在Linux系统上用shell如何获取昨天,后天,4天之前的时间等问题
基本命令: Date
相关参数:-d 和 +%s
关键点解释:
date 默认情况下,使用用当前时间,可以输出从1970年1月1日零点到目前的秒数,也可以根据+%...的格式,输出所需的月份,天数,小时,等信息
参数-d "other_date_time" 可以使用任意的自己指定的时间日期作为基础
参数 -d @"seconds" 可以使用从1970年1月1日零点到目前的秒数作为基础
例如 date 输出为: Mon Oct 26 01:11:24 PDT 2009
那么 date +%s 输出为 1256544684
反过来: date -d@1256544684 输出为 Mon Oct 26 01:11:24 PDT 2009
以此为基础:
用法示例:
1. 获取昨天的日期
获取日期的方法: date +%F
获得一天的秒数: echo 60*60*24 |bc
获得1970年1月1日零点到目前的秒数 date +%s
通过1970年1月1日零点到目前的秒数获得日期 date -d @xxxxx +%F
全部放在一起:
sec=`date +%s`
sec2=`echo $sec - "60*60*24" | bc`
date -d@$sec2 +%F
2. 获取明天的日期
sec=`date +%s`
sec2=`echo $sec - "60*60*24" | bc`
date -d@$sec2 +%F
3. 获取n天之前/之后的日期
假如n=-30
sec=`date +%s`
sec2=`echo $sec + "-30*60*60*24" | bc`
date -d@$sec2 +%F
延伸用法:
1. 查找当前目录下n天之前修改的文件
通过用法示例3中的方法,找到n天之前的日期
ndate=`date -d@$sec2 +%F`
然后在/tmp下产生一个参考文件
touch -d$ndate /tmp/reference.tmp
然后用find命令查找
find . ! -newer /tmp/reference.tmp
2. 查找某目录下,2002年3月20日,下午5点33分12秒之后修改过的文件
touch -d"2002-03-20 17:33:12" /tmp/reference.tmp
find . -newer /tmp/reference.tmp
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/118678/viewspace-1057018/ ,如需转载,请注明出处,否则将追究法律责任。