2009-12-01 28 views
1

我怎樣才能找到所有目錄的列表匹配特定標準(以天爲-M,修改年齡),在其子目錄中的文件,但不?如何在Perl中獲取目錄中的所有文件,但不能獲取子目錄中的所有文件?

我想使用文件::查找,但看起來它總是轉到子目錄了。

+0

什麼是「特定標準」?大小,權限,名稱,日期,任何事情? – innaM 2009-12-01 14:57:20

+0

@Manni:-M,在做天在同一文件的多個-X的時候 – 2009-12-01 15:01:49

回答

8
@files = grep { -f && (-M) < 5 } <$_/*> for @folders; 
+7

修改年齡,你可以使用_作爲所有,但第一個「文件名」重複使用相同的統計迴歸 – ysth 2009-12-01 17:28:59

2

使用readdirFile::Slurp::read_dirgrep結合。

#!/usr/bin/perl 

use strict; 
use warnings; 

use File::Slurp; 
use File::Spec::Functions qw(canonpath catfile); 

my @dirs = (@ENV{qw(HOME TEMP)}); 

for my $dir (@dirs) { 
    print "'$dir'\n"; 
    my @files = grep { 2 > -M and -f } 
       map { canonpath(catfile $dir, $_) } read_dir $dir; 
    print "$_\n" for @files; 
} 
-1

您可以在「被通緝」功能中設置文件::查找::修剪跳過目錄樹。添加類似$文件::查找::修剪= 1,如果(-d & & $文件::查找::名字呢 「」);

+5

如果你不想先進行深度搜索,不要使用深度優先搜索工具。 :) – 2009-12-01 15:40:51

相關問題