>

date命令参数,明天的就放到2015澳门博发娱乐官网

- 编辑:澳门博发娱乐官网 -

date命令参数,明天的就放到2015澳门博发娱乐官网

shell脚本删除N天前的文本夹

背景:

天天构建的事物,按日期放到差异的文件夹里。这两天日的创设放到2014-06-01里,前几天的就停放2016-06-02里,依次类推。时间久了,供给一个本子删除N天前的公文夹。(本例中N=7,即除去一周前的塑造)。

上边间接上代码,linux版:

#! /bin/bash

historyDir=~/test/

today=$(date +%Y-%m-%d)

echo "---------today is $today-----------"

tt=`date -d last-week +%Y-%m-%d`

echo "next is to delete release before $tt"

tt1=`date -d $tt +%s` #小于此数值的文件夹删掉

#echo $tt1

for file in ${historyDir}*

do

if test -d $file

then

name=`basename $file`

#echo $name

curr=`date -d $name +%s`

if [ $curr -le $tt1 ]

then

echo " delete $name-------"

rm -rf ${historyDir}${name}

fi

fi

done

注意事项:

1,historyDir=~/test/后边必然要带/,不然在末端的遍历文件夹时for file in ${historyDir}*会对应不上。

2,在linux下通过today=$(date +%Y-%m-%d)获得格式为二〇一四-06-01档期的顺序的日子,通过

tt1=`date -d $tt +%s`

收获整形的时刻戳。当然也能够在得到时间的时候就用$(date +%s)那样从来获取的正是光阴戳,不用再转移了,可是日子是默许的年月日小时分秒的格式调换的时光戳。

PS:MAC下不行。

3,linux里经过date -d last-week +%Y-%m-%d来赢得七日前的日期。

PS:MAC下没行。

4,通过 if test -d $file来剖断文件夹是还是不是留存,-f是推断文件是还是不是存在。

name=`basename $file`

那句话赢得文件夹的名字,之后是将名字(也等于日期)转为时间戳相比较。

MAC上的代码

#! /bin/bash

historyDir=~/test/

today=$(date +%Y-%m-%d)

echo "---------today is $today-----------"

today1=`date -j -f %Y-%m-%d $today +%s`

#echo "today1=$today1"

#求一周前的时间

tt=$(date -v -7d +%Y-%m-%d)

echo "next is to delete release before $tt"

tt1=`date -j -f %Y-%m-%d $tt +%s` #linux上可以这样`date -d $tt +%s` #小于此数值的文件夹删掉

#echo $tt1

for file in ${historyDir}*

do

if test -d $file

then

name=`basename $file`

echo $name

curr=`date -j -f %Y-%m-%d $name +%s`

if [ $curr -le $tt1 ]

then

echo " delete $name"

rm -rf ${historyDir}${name}

fi

fi

done

echo "--------------end---------------"

跟linux上差别之处有二:

1,将字符串的时日转为整数的时日戳时,mac上要那样:

today1=`date -j -f %Y-%m-%d $today +%s`

2,获得7天以前的日子mac上要那样:

tt=$(date -v -7d +%Y-%m-%d)

澳门博发娱乐官网 1


背景: 每一天创设的东西,按日期放到区别的文件夹里。近年来日的创设放到二零一六-06-01里,今天的就放置二〇一四-06-02里,...

参数:

1 获取当前时间戳

  %F 文件时间格式 same as %Y-%m-%d

选取办法 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]] 

有问题。。。。

$ cat date.txt 

已知日子戳,求当前天期
date --date="19700101 +$(($((`date +%s`))+(8*60*60))) sec" +%Y%m%d" "%H:%M:%S
PS:从1967年011月01日上马算, +$(($((`date +%s`))+(8*60*60))) sec 表示过了稍稍秒,个中(8*60*60)表示8个钟头,时区难点,国内时间与世风时间距离8小时。

2008-07-01 21:29:00 

此处直接报错。。没符合规律展现

%U     一年的第几周,星期日为每一周的率后天(00..53) 

  %M 双位分钟 (00..59)

 

3、2秒后输出:date -d "2 second" + "%Y-%m-%d %H :%M.%s"

$ date -d "2010-11-15 23:00:01" 

#man date能够见见date的help文件
  #date 获取当今日子
  #date -d "-1week" +%Y%m%d 获取下七日日子(day,month,year,hour)
  #date--date="-24 hour" +%Y%m%d 同上
  date_now=`date+%s` shell脚本里面赋给变量值
  %% 输出%符号
  %a 当前域的礼拜缩写 (Sun..Sat)
  %A 当前域的星期全写 (Sunday..Saturday)
  %b 当前域的月度缩写(Jan..Dec)
  %B 当前域的月份全称 (January..December)
  %c 当前域的暗中认可时间格式 (Sat Nov 04 12:02:33 EST 一九九零)
  %C n百年 [00-99]
  %d 两位的天 (01..31)

 

date命令 展现或安装系统时间和日期

%k     小时( 0..23) 

  %D 长期格式 (mm/dd/yy)

%l : 小时(1..12) 

澳门博发娱乐官网 2

date [OPTION]… [+FORMAT] 

   date -d "2 day" "+%Y%m%d %A"

%I : 小时(01..12) 

4、故事中的 1234567890 秒:

%M    分钟(00..59) 

  %N 十亿分之一秒(000000000..999999999)

%h : 同 %b 


%X     时间(%H:%M:%S) 

[plain] view plaincopy

 

-d “字符串” 展现字符串所指的日子与时间,注意字符串要加双引号

%S     秒(00..60) 

就那样推算:date命令获得前几日,明日,昨天,后天,下一个月,前段时期的日期

 

学业:删除目录下全部隐含  test 的公文或目录

%Y     年份 (1970…) 

date+%s   能够得到UNIX的时刻戳;

$ date -d next-day +%Y%m%d(明日的日期)只怕:date -d tomorrow +%Y%m%d 

<时间日期格式>

暗中同意意况下,在呈现日期和岁月时,date命令使用数字0填充数字域。比如,借使用两位数显月份,则一月来得为“06”,也得以用下述调控符来调整填充符号。

#date -d "-1week" "+%Y%m%d %A"

将最近几天期赋值给DATE变量

选项:

4 日期转时间戳

   echo `date -d"-1 month" "+%Y-%m-%d %X"`

运用 ago 指令,您能够获取过去的日子: 

5、前面还会有-普通转格式-apache格式调换、格式调换后时间游走、加减操作临时不操作,同上会出错

Mon Nov 15 23:00:02 PST 2010 

  1. read -p"Input your birthday(YYYYmmdd):" date1  
  2.   m=`date--date="$date1" +%m` #获取寿辰的月  
  3.   d=`date--date="$date1" +%d` #收获出生之日的日  
  4.   date_now=`date+%s` #得到当前时刻的秒值  
  5.   y=`date +%Y` #赢安妥前光阴的年  
  6.   birth=`date--date="$y$m$d" +%s` #收获二零一五年的南阳日期的秒值  
  7.   internal=$(($birth-$date_now)) #测算今天到西宁日期的间隔时间  
  8.   if ["$internal" -lt "0" ]; then #判定明天的湖州是还是不是已过  
  9.   birth=`date--date="$(($y+1))$m$d" +%s` #取得明日的生辰日期秒值  
  10.   internal=$(($birth-$date_now))#计量后天到下一个寿诞的间隔时间  
  11.   fi  
  12.   echo "Thereis :$((einternal/60/60/24)) days." #出口结果,秒换算为天  

获得当天的日子 date +%Y-%m-%d 输出: 二〇一三-07-28 给自身的变量赋值 myDate=$(date +%Y%m%d) 将当前几天子赋值给DATE变量 DATE=$(date +%Y%m%...

find /App/ido/jobs  -type f -name "*test*" -delete

$ date -d next-day +%Y%m%d(明日的日期)恐怕:date -d tomorrow +%Y%m%d

  %I 12小时制的钟点 (01..12)

%p : 展现本地 AM 或 PM 

2,输出后日日子:

展现时间是个常用的通令,在写shell脚本中也时时会用到与日期相关文件名或时间呈现。无论是linux照旧windows下都以date命令。


unix shell中的日期之间距离的气数 

上边查看包罗 test 的文本夹find /App/ido/jobs  -type d -name "*test*"

if [ $stamp -gt 0 ]   #大于0

  %n 换行

上边是一些date参数的辨证和部分事例

date: 额外的操作数 "Y-%m-%d"

Try 'date --help' for more information.

[root@localhost network-scripts]# date

2017年 07月 22日 星期六 23:59:55 CST

[root@localhost network-scripts]#

$ date -d ’50 days’(50天后的日子)

  %j 一年中的第几天 (001..366)

$ date -d ’50 days’(50天后的日子) 

澳门博发娱乐官网 3

%A    星期的一体化名称 (Sunday..Saturday) 

  %k 短格式24小时制的时辰 ( 0..23)

譬喻,您需求领悟两星期以后的日子。要是你处于 Shell 提示符处,那么能够火速地赢得答案: 

澳门博发娱乐官网 4

stamp=`expr $stamp2 - $stamp1`

mkdir `date+%Y%m%d`

%M : 分钟(00..59) 


%F    日期,同%Y-%m-%d 

   date -d "-1 month" "+%Y%m%d %A"

ss 为秒数 

实例:

%s     从00:00:00 壹玖陆陆-01-01 UTC开首的秒数 

   date -d "-1 day" "+%Y%m%d %A"   或 date --date="1 day ago""+%Y%m%d %A"

%s : 从 1966 年 1 月 1 日 00:00:00 UTC 到近日结束的秒数 %S : 秒(00..61) 

%m 月份     %w 一个星期的第几天  %d 二个月的第几天

5 时间戳转日期

下一场 awk -v 作为贰个参数那样传进去轻巧点。

赢得昨日的日子

去除文件夹这里存在一个主题材料,是或不是强制删除”非空目录“,就不曾去除

3 获得相对日期

uuwatch@i161 ~ $ date -d "-1 month"  +%Y-%m-%d           //上个月
2015-06-07
uuwatch@i161 ~ $ date -d "1 month"  +%Y-%m-%d            //下个月
2015-08-07

$ a=`date +%Y-%m-%d` 

%y 年的最后多少个数字

11/15/2010 09:50:21 PM 

   date -d "1 month" "+%Y%m%d %A"

 

find /App/ido/jobs  -type d -name "*test*" -delete

$ date -d ‘-100 days’ (100天在此在此以前的日子)

uuwatch@i161 ~ $ date +%Y-%m-%d
2015-07-07
uuwatch@i161 ~ $ date -d "1 day"  +%Y-%m-%d                    //1天后(后天),另外类似2天后(后天)把1改成2就可以
2015-07-08
uuwatch@i161 ~ $ date -d "-1 day"  +%Y-%m-%d        //-1天前(前天),其它类似2天前(后天)把-1改成-2即可
2015-07-06

-d datestr : 展现 datestr 中所设定的大运 (非系统时间) 

date -d "1 day ago" + "Y-%m-%d"

lastmonth=`date+%Y-%m --date="-1 month"`"-01";

增加36小时: 

date (选项) (参数)

%C     世纪(年份除100后去整) [00-99] 

备份以时日做为文件名的

date -d next-month +%Y%m

-s “字符串” 按照字符串来安装日期与时间。字符串须要有双引号

%I     小时(01..12) 

date命令怎么样收获上星期的日子?

%Z : 展现时区 

6、设定时间: date -s

-ITIMESPEC, –iso-8601[=TIMESPEC]  以ISO  8601 格式显示日期/时间。TIMESPEC为”date”(只展现日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默感觉”date”。 

  %p 大写的当前域的上中午指示 (blank in many locales)

自然,也能钦定其余的ntp服务器 

1,格式化输出   date + “%Y-%m-%d”

  %m 双位月份 (01..12)

ntp时间同步 

本文由胜博发-运维发布,转载请注明来源:date命令参数,明天的就放到2015澳门博发娱乐官网