shell的date
使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說明 : date 可以用來顯示或設(shè)定系統(tǒng)的日期與時間,在顯示方面,使用者可以設(shè)定欲顯示的格式,格式設(shè)定為一個加號后接數(shù)個標記
必須注意,(1)“+”號前有空格,后面沒有空格,否則錯;
(2)等號兩邊無空格。
shell腳本,不像python那樣命令行中可以添加空格。shell的命令中空格要求嚴格,有多余空格會影響正確性,日期命令就是最明顯的例子。
?
?常用命令如下:
date???????????????????????????????? 以默認格式顯示當前日期(Fri Nov 18 10:38:07 CST 2011)
date +%Y%m%d???????????? 以yyyymmdd格式輸出(20111118)?
date +"%Y%m%d %A" ?? 以"yyyymmdd?星期"格式輸出(20111118 Friday)??
date -d "1 day"?? +%Y%m%d???????????? 顯示一天后的日期(20111119)或者date --date="1 day" +%Y%m%d
再比如:date --date="1 day ago" +%Y%m%d;date --date="-1 day" +%Y%m%d;date --date="20130913" +%Y%m%d?;
date -d "3 day ago" +%Y%m%d????? 以指定格式顯示3天前的日期
date -d "1 month" +%Y-%m-%d??????? 以指定格式顯示一個月后的日期
date -d "1 month" +%s???????????????????? 以指定格式顯示一個月后的日期(此格式為從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù),%S為當前的秒數(shù)(0~59))
date -d "1970-01-01 CST 1 second" +%s????? 顯示從1970-01-01 CST起1秒后的秒數(shù)(-28799,注意時區(qū)"CST")
********************************************************************************************************************
用-d?產(chǎn)生各種時間組合
2011111前一天 date? -d "-2 day 20111111" +%Y%m%d( 20111109)
????????????? ? 或者date --date="20130913" +%Y%m%d
2011111后7天? date? -d "+7 day 20111111" +%Y%m%d( 20111118)
例子:產(chǎn)生從20110701到兩天前的所有日期
begin_date='20110701'
end_date=`date -d "2 day ago" +%M%m%d`
while [ $begin_date != $end_date ]
do
?????? echo $begin_date
?????? begin_date=`date -d "+1 day $begin_date" +%Y%m%d`
done
?
?
時間方面 :
% : 印出
% %n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數(shù)
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當于 %H:%M:%S
%Z : 顯示時區(qū)
日期方面 :
%a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最后兩位數(shù)字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以百分號作為開頭,則表示要設(shè)定時間,而時間格式為 MMDDhhmm[[CC]YY][.ss],
其中 MM 為月份,
DD 為日,
hh 為小時,
mm 為分鐘,
CC 為年份前兩位數(shù)字,
YY 為年份后兩位數(shù)字,
ss 為秒數(shù)
把計 :
-d datestr : 顯示 datestr 中所設(shè)定的時間 (非系統(tǒng)時間)
–help : 顯示輔助訊息
-s datestr : 將系統(tǒng)時間設(shè)為 datestr 中所設(shè)定的時間
-u : 顯示目前的格林威治時間
–version : 顯示版本編號
例子 :
顯示時間后跳行,再顯示目前日期 : date +%T%n%D
顯示月份與日數(shù) : date +%B %d
顯示日期與設(shè)定時間(12:34:56) : date –date 12:34:56
注意 : 當你不希望出現(xiàn)無意義的 0 時(比如說 1999/03/07),則可以在標記中插入 – 符號,比如說 date +%-H:%-M:%-S 會把時分秒中無意義的 0 給去掉,像是原本的 08:09:04 會變?yōu)?8:9:4。另外,只有取得權(quán)限者(比如說 root)才能設(shè)定系統(tǒng)時間。 當你以 root 身分更改了系統(tǒng)時間之后,請記得以 clock -w 來將系統(tǒng)時間寫入 CMOS 中,這樣下次重新開機時系統(tǒng)時間才會持續(xù)抱持最新的正確值。
創(chuàng)建以當前時間為文件名的
mkdir `date +%Y%m%d`
備份以時間做為文件名的
tar cvf ./htdocs`date +%Y%m%d`.tar ./*
?
轉(zhuǎn)載于:https://www.cnblogs.com/cl1024cl/p/6205655.html
總結(jié)
以上是生活随笔為你收集整理的shell的date的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php转义和去掉html、php标签函数
- 下一篇: Oracle学习笔记之一,重温范式