在 Perl 中,如何获取目录中的所有文件,但不能获取子目录中的所有文件?

StackOverflow https://stackoverflow.com/questions/1826675

  •  22-07-2019
  •  | 
  •  

如何找到符合特定条件的所有文件(-M, ,修改期限(以天为单位))在目录列表中,但不在其子目录中?

我想使用 File::Find,但看起来它也总是转到子目录。

有帮助吗?

解决方案

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

其他提示

使用 读目录 或者 文件::Slurp::read_dir 和这个结合 grep.

 #!/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,如果(-d && $文件::查找::名字呢 “”);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top