Perl:如何找到已知子文件夹的父文件夹?

时间:2016-06-20 16:36:38

标签: perl

我是Perl的新手,我在获取已知子文件夹的父文件夹时遇到了一些麻烦。 所以我有一个子文件夹列表,比方说A,B,C,D等。 我知道它们都散布在标有(例如),1,2,3,4等的文件夹中。

所以它可以是这样的: 1 / A 1 / B 2 / C 3 / d 3 / E 等

我只是想遍历每个文件夹并找到它的直接父目录。有什么想法吗?

编辑:将PERL更改为Perl:P

1 个答案:

答案 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