2011-10-20 121 views
0

我试图合并一点清理到我的输出目录,其中最近的文件将被删除。删除除最近的文件夹以外的文件夹中的所有文件

my @files = grep{ -f && -t } glob($outputdir); 
349 
350 my @expected_file = grep { /SequenomComparisonSummary\_(\d+)\.txt/} @files; 
351 foreach my $file(@expected_file){ 
352 
353 unlink $file; 
354 warn "Removing file $file\n"; 
355 } 

但我想保留最近的目录,并删除其余的?有没有更简单的方法来做到这一点?

非常感谢您的建议。

回答

3

如何:

unlink $file if -M $file > 7; # unlink if older than one week 

(或者你可以使用-M > 7为您grep条件的一部分。)


诗篇。您的grep条件中的-t可能不是您认为的那样。 From the docs

-t文件句柄打开到tty。” “

”如果省略参数,则测试$_,除了测试STDIN的-t“。

因此,在你的代码-t正在检查STDIN是否是一个终端,我认为是不是你真正想检查。

+0

嗨Ilmari,谢谢!很好地发现它应该是T而不是-t。再次感谢 –

相关问题