我想獲得所有子目錄和文件裏面'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