我是Perl的新手,我在获取已知子文件夹的父文件夹时遇到了一些麻烦。 所以我有一个子文件夹列表,比方说A,B,C,D等。 我知道它们都散布在标有(例如),1,2,3,4等的文件夹中。
所以它可以是这样的: 1 / A 1 / B 2 / C 3 / d 3 / E 等
我只是想遍历每个文件夹并找到它的直接父目录。有什么想法吗?
编辑:将PERL更改为Perl:P
答案 0 :(得分:7)
use File::Find::Rule qw( );
my @matches =
File::Find::Rule
->name(qw( A B C D ))
->directory
->in('.');
它处理深度目录就好了。
$ mkdir -p a/b/c/d/e/f/g/h/i/j/k/l
$ touch a/b/c/d/e/f/g/h/i/j/k/l/file
$ mkdir -p 0/1/2/3/4/5/6/7/8/9
$ touch 0/1/2/3/4/5/6/7/8/9/file
$ perl -MFile::Find::Rule -E'say for File::Find::Rule->in(".")'
.
a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
a/b/c/d/e/f/g
a/b/c/d/e/f/g/h
a/b/c/d/e/f/g/h/i
a/b/c/d/e/f/g/h/i/j
a/b/c/d/e/f/g/h/i/j/k
a/b/c/d/e/f/g/h/i/j/k/l
a/b/c/d/e/f/g/h/i/j/k/l/file
0
0/1
0/1/2
0/1/2/3
0/1/2/3/4
0/1/2/3/4/5
0/1/2/3/4/5/6
0/1/2/3/4/5/6/7
0/1/2/3/4/5/6/7/8
0/1/2/3/4/5/6/7/8/9
0/1/2/3/4/5/6/7/8/9/file