[英]perl - File::Find::Rule to exclude a single dir only for the top level
我嘗試了以下排除目錄“ CVS”的方法
my $rule = File::Find::Rule->new;
$rule->or($rule->new->directory->name('CVS')->prune->discard, $rule->new);
但是,這實際上排除了目錄樹中的所有CVS目錄。
這是一個例子:
您可以使用與find dir -wholename dir/CVS -prune -o -print
等效的Perl。
say
for
File::Find::Rule
->or(
File::Find::Rule->exec(sub { $_[2] eq "$dir/CVS" })->prune->discard,
File::Find::Rule->new(),
)
->in($dir);
另一種方法是使用File :: Find :: Rule構建要搜索的目錄列表,然后使用File :: Find :: Rule的另一種用法搜索這些目錄。 (Perl等價於find ... -print0 | xargs -0 -I{} find {} ...
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.