关于SHELL脚本中日期大小的比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于SHELL脚本中日期大小的比较相关的知识,希望对你有一定的参考价值。

在一个目录中有很多以当前日期为命名的文件夹(举例:20130801),我想实现把7天之前的文件夹全部删掉..请问具体怎么实现?

参考技术A 1、既然按照当前日期,创建的,那么应该可以根据系统给的时间戳为属性,完成操作即可。
2、根据你的说法山掉7天谴的文件夹,那么应该是7天前建立的文件夹进行删掉所以用ctime。

find ./ -ctime +7 -exec rm -rf \;
参考技术B #!/bin/sh
find /path/you/want/to/delete -type d -mtime +7 -exec rm -r \;

把上面的写入到一个脚本里,如/usr/local/bin/del.sh
chmod +x /usr/local/bin/del.sh
把下面这行加入到cron job里:
0 1 * * * /usr/local/bin/del.sh本回答被提问者采纳

js关于日期比较大小

for(var i=0;i<shijian.length;i++)
var beginDate= shijian[i];
var endDate=new Date().Format("yyyy-MM-dd hh:mm:ss.S");

var d1 = new Date(beginDate.replace(/\-/g, "\/"));
var d2 = new Date(endDate.replace(/\-/g, "\/"));

if(beginDate!=""&&endDate!=""&&d2 > d1)

alert("不能选择已过期的信息");
return;


这样比较的话在 googol浏览器可以 但是在IE 和 火狐就不行 谁知道原因

参考技术A 可以用用Date.parse()方法
var d1 = Date.parse('2014-09-28 19:00:00'),
    d2 = Date.parse('2014-09-28 2:00:00');
console.log(d1 > d2);

追问

还是不行 IE依然可以

追答IE下把日期格式转成 2014/9/28 这种格式的试试,
实在不行就取new Date(xxx).getTime()进行比较

参考技术B 传入的日期参数为yyyy-mm-dd格式,a大于b返回false,a小于等于b返回true。
function compare_time(a,b)
var arr=a.split("-");
var starttime=new Date(arr[0],arr[1],arr[2]);
var starttimes=starttime.getTime();
var arrs=b.split("-");
var endtime=new Date(arrs[0],arrs[1],arrs[2]);
var endtimes=endtime.getTime();
if(starttimes>endtimes)//开始大于结束

return false;

else
return true;

参考技术C var a = new Date('2014-09-28 19:00:00')
var b = new Date('2014-09-28 19:00:01')
console.log(a.getTime() > b.getTime())

以上是关于关于SHELL脚本中日期大小的比较的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本 - 日期比较与判断

shell脚本-比较两个整数大小

shell脚本-比较两个整数大小

编写shell脚本,实现如下功能:(1)从命令行读入2个整数;(2)对两个数进行大小比较;(3)在屏幕上输出

Linux shell脚本按日期 切割pm2日志

AIX shell 脚本中的日期操作