我想获得所有子目录和文件里面'dir1,dir2,dir3,dir4,dir5'如下所示,并将其推送到另一个Dir。如果我使用这个代码,我会得到一切。不过,我需要处理更多像这样的目录。有没有简单的方法来使用简单的代码来处理所有这些'dir1到... dirx',而不是在下面分别指定每个目录。由于提前如何使用简单的代码perl处理和推送多个目录
use File::Find::Rule;
my @pushdir;
my @pushdir1 = File::Find::Rule->directory->in('/tmp/dirx');
my @pushdir2 = File::Find::Rule->directory->in('/tmp/nextdir');
my @pushdir3 = File::Find::Rule->directory->in('/tmp/pushdir');
my @pushdir4 = File::Find::Rule->directory->in('/tmp/logdir');
my @pushdir5 = File::Find::Rule->directory->in('/tmp/testdir');
push @pushdir, @pushdir1,@pushdir2,@pushdir3,@pushdir4,@pushdir5;
my @Files;
foreach my $dir (@pushdir) {
push @Files, sort glob "$dir/*.txt";
}
对不起,一个小小的变化。目录结构是'/ tmp/dirx','/ tmp/temp_dir','/ tmp/testdir','/ tmp/nextdir'。如果它不以'/tmp/dir1..5'结尾,如何改变?我编辑了原始问题。谢谢 。 – bsd
太棒了。有用 。谢谢 – bsd
我怀疑OP是在寻求一种避免枚举'/ tmp'的子目录的方法。据我所知,您的解决方案与OP的代码完全相同,但将部分流程抽象为子流水线使得它不太清晰 – Borodin