首页 > 学技术 > 技术网文 > Perl > 正文

[精华] perl如何删除半年以前的文件?


来源 chinaunix.net kuqin整理

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號的。




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=320204
转载请注明作者名及原文出处



收藏本页到: