是否可以使用通配符获取File::Find perl模块中的目录列表?
我想列出包含所需目录的目录路径 例如:是否可以使用通配符获取File::Find perl模块中的目录列表?,perl,file-find,Perl,File Find,我想列出包含所需目录的目录路径 例如: /usr1 | | ----------------------------------------- |
/usr1
|
|
-----------------------------------------
| |
/local1 /local2
| |
dir1 dir1
我想使用通配符*
查找dir1所在的目录路径
从linux命令行,我可以这样做以获得结果
find /usr1/local* -name dir1 -type d
然后它就会显示出来
/usr1/local1/dir1
/usr1/local2/dir1
使用File::Find perl模块的方法与此相同
我不想使用系统
或`
来完成它
find /usr1/local* ...
是
因此,整体是
use File::Basename qw( basename );
use File::Find qw( find );
my $wanted = sub {
say if basename($_) eq "dir1" && -d $_;
};
find({ wanted => $wanted, no_chdir => 1 }, glob("/usr1/local*"));
就我个人而言,我更喜欢
相当于
find /usr1/local* ...
是
因此,整体是
use File::Basename qw( basename );
use File::Find qw( find );
my $wanted = sub {
say if basename($_) eq "dir1" && -d $_;
};
find({ wanted => $wanted, no_chdir => 1 }, glob("/usr1/local*"));
就我个人而言,我更喜欢
对结构感到抱歉。认为你应该阅读模块的文档对结构感到抱歉。认为你应该阅读模块的文档当
glob
返回文件和目录时不会find
抱怨?@simbabque,不,也不会find
抱怨。find(…,grep{-d}glob(/usr1/local*))
@shawnhcorey,这是不等价的。当glob
返回文件和目录时,不会find
抱怨吗?@simbabque,不,也不会find
抱怨。find(…,grep{-d}glob(/usr1/local*)
@shawnhcorey,这是不等价的。