2011-10-20 120 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。再次感謝 –

相關問題