ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Unix-Linux 日期处理

Unix-Linux 日期处理

原创 Linux操作系统 作者:mingbo 时间:2012-01-02 09:20:26 0 删除 编辑

在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

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/118678/viewspace-1057018/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    2
  • 访问量
    16933