我有一些代码可以解析目录以获取包含各种设备主机名的文件。但是我希望glob忽略一定深度的目录这可能吗?所以例如我有
my @files = glob('/tftpboot/configs/*/*');
我的文件夹架构看起来像
/tftpboot/configs/core/router1 (where router1 is a file)
/tftpboot/configs/test/router2 (where router2 is a file)
/tftpboot/configs/test/firewall/context (context is a file)
我想获取文件router1,router2和任何类似深度的文件。但是,我想忽略任何任何深度文件的上下文。有什么建议吗?
谢谢
答案 0 :(得分:2)
跟进:
@files = grep { !-d $_ } @files;
-or-
@files = grep { -f $_ } @files;
您还可以使用File::Find::Rule之类的内容。
my @files = File::Find::Rule->file->in('/tftpboot/configs');