天天看點

linux date指令

在linux環境下要取得幾天前的時期隻要使用

date -d "x days ago" +%Y%m%d

x用數字代替,如果需要幾天前的直接寫正數,如果要幾天後的日期直接寫負數即可;

date -d "x weeks ago" +%Y%m%d

x用數字代替,如果需要幾周前的直接寫正數,如果要幾周後的日期直接寫負數即可;

date -d "x years ago" +%Y%m%d

x用數字代替,如果需要幾年前的直接寫正數,如果要幾年後的日期直接寫負數即可;

看下面例子:

[root@showsky ~]# date +%Y%m%d

20100107

上面是今天的日期20100107

[root@showsky ~]# date -d "2 days ago" +%Y%m%d          

20100105

上面是兩天前的日期

[root@showsky ~]# date -d "4 days ago" +%Y%m%d 

20100103

上面是四天前的日期

[root@showsky ~]# date -d "-1 days ago" +%Y%m%d

20100108

上面是一天後的日期

[root@showsky ~]# date -d "-2 days ago" +%Y%m%d 

20100109

上面是兩天後的日期

[root@showsky ~]# date -d "1 week ago" +%Y%m%d       

20091231

上面是一周前的日期

[root@showsky ~]# date -d "1 year ago" +%Y%m%d     

20090107

上面是一年前的日期

         今天需要寫一個shell腳本來完成apache日志的篩選,需求很簡單,就是要把10分鐘之前的日志找出來,然後放到另一個檔案中。shell中用 date指令對日期進行處理,但怎麼擷取10分鐘之前的時間呢,仔細看了一下help,沒有看出對時間的“運算”,有的也就是一些輸出格式的描述。但有一 個參數 -d or --date=STRING 其描述是display time described by STRING, not  ‘now’,那這個STRING該怎麼寫才可以describe我想要的時間呢,使用 n  second(s)/minute(s)/hour(s)/day(s)/year(s) ago  即可,其中n支援負數,那麼就變成了之後的時間了。如:

        擷取10分鐘之前的時間: date --date="10 minute ago&rdquo"

        擷取10天之前的時間: date --date="10 days ago&rdquo"

        擷取10分鐘之後的時間: date --date="-10 minute ago&rdquo"

        擷取10天之後的時間: date --date="-10 minute ago&rdquo"

       這樣就實作了使用shell指令做日期的計算了

本文轉自leonardos51CTO部落格,原文連結: http://blog.51cto.com/leomars/489690,如需轉載請自行聯系原作者