我正在尝试像下面一样获取'dir1,dir2,dir3,dir4,dir5'内的所有子目录和文件,并将其推送到另一个Dir。如果我使用此代码,我将得到一切。但是,我需要处理更多这样的目录。有没有简单的方法使用简单的代码来处理所有这些“从dir1到... dirx”,而不是在下面单独分配每个目录。提前致谢
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";
}
使用子例程:
#!/usr/bin/env perl
use strict;
use warnings;
use File::Find::Rule;
my @dirnames = qw( dirx temp_dir testdir nextdir );
my @dirs_to_search = map { "/tmp/$_" } @dirnames;
my @files;
for my $dir (@dirs_to_search) {
push @files, find_files_in_dir($dir);
}
sub find_files_in_dir {
my ($dir) = @_;
my @subdirs = File::Find::Rule->directory->in( $dir );
my @txt_files;
for my $subdir ( @subdirs ) {
push @txt_files, sort glob "$subdir/*.txt";
}
return @txt_files;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句