当前位置: 永利会员登录皇宫463 > 业界快讯 > 正文

次日的就放置二〇一五-06-02里,依照字符串来设

时间:2019-10-14 00:00来源:业界快讯
shell脚本删除N天前的文件夹 背景: 每一日构建的事物,按日期放到区别的文书夹里。前段时间日的构建放到二〇一四-06-01里,前天的就放置二〇一四-06-02里,依次类推。时间久了,须

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

背景:

每一日构建的事物,按日期放到区别的文书夹里。前段时间日的构建放到二〇一四-06-01里,前天的就放置二〇一四-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来获得10日前的日期。

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---------------"

永利会员登录皇宫463,跟linux上不一致之处有二:

1,将字符串的小运转为整数的年月戳时,mac上要那样:

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

2,得到7天从前的日期mac上要那样:

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

永利会员登录皇宫463 1


背景: 每一日创设的东西,按日期放到不一致的文件夹里。如先天的塑造放到二零一五-06-01里,今天的就放到二零一五-06-02里,...

date命令 显示或安装系统时间和日期

date (选项) (参数)

选项:

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

-s “字符串” 根据字符串来安装日期与时光。字符串须求有双引号

参数:

<时间日期格式>

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

%y 年的最后多个数字

实例:

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

[root@localhost network-scripts]# date + "%Y-%m-%d"

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

有问题。。。。

2,输出前日日子:

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

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]#



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

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

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

剔除文件夹这里存在一个难点,是或不是强制删除”非空目录“,就不曾去除

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

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

永利会员登录皇宫463 2

4、故事中的 1234567890 秒:

永利会员登录皇宫463 3

此处直接报错。。没正常显示

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

6、设定期期: date -s

永利会员登录皇宫463 4

编辑:业界快讯 本文来源:次日的就放置二〇一五-06-02里,依照字符串来设

关键词: