perl如何删除半年以前的文件?请高手指教啊
deathcult 回复于:2004-05-09 11:08:29
主要是用了Date::Manip模块:
#!/usr/bin/perl
use strict;
use Date::Manip;
my $date1 = &DateCalc("today","-180 days", 0);
my @temp = stat("file.txt");
my $date2 = $temp[8];
my $flag = &Date_Cmp($date1,$date2);
if($flag < 0)
{
print "$date1 is earlier than $date2!\n";
}
elsif($flag == 0)
{
print "the two dates are identical!\n";
}
else
{
print "$date2 is earlier than $date1!\n";
}
exit 0;
apile 回复于:2004-05-09 11:12:40
用shell吧
find / -mtime +180 -exec ls {} \;
看一下..然後
find / -mtime +180 -exec rm {} \;
有空man 一下 find吧..
不然砍掉不該砍的...也很麻煩..
jackylau 回复于:2006-11-10 14:15:44
引用:原帖由 apile 于 2004-5-9 11:12 发表
用shell吧
find / -mtime +180 -exec ls {} \;
看一下..然後
find / -mtime +180 -exec rm {} \;
有空man 一下 find吧..
不然砍掉不該砍的...也很麻煩..
这个才是正解!
alexru 回复于:2006-11-10 14:50:15
赞一个!
aaronvox 回复于:2006-11-13 12:25:12
find每个平台有点区别
还有不支持分钟和秒的平台
可用use File::Find;
模拟一个find
example% find2rm.pl -path '$HOME/*.log' -mday '+7' -print
example% find2rm.pl -path '$HOME/*.log' -mday '+7'
dragbook 回复于:2007-03-09 16:30:23
学习。
兰花仙子 回复于:2007-03-09 16:38:27
上面提到的都可以做到..File::Find用起来更巧妙.
dragbook 回复于:2007-03-09 16:40:09
哦。
topgunroot 回复于:2007-05-30 04:38:16
C:\tmp>perl -e "grep { print \"del $_\" if 1 > -M; print \"\n\" } glob('c:\tmp\*cold*');"
del c:\tmp\1.cold
del c:\tmp\cold.1
说明: 列出1天之内 c:\tmp下*cold*文件
[ 本帖最后由 topgunroot 于 2007-5-30 04:39 编辑 ]
福瑞哈哥 回复于:2007-05-30 06:43:47
引用:原帖由 兰花仙子 于 2007-3-9 16:38 发表
上面提到的都可以做到..File::Find用起来更巧妙.
突然看到仙子的美妙頭像一陣激動,原來是3月9號的。
|