1

我有一些代码可以解析目录以获取包含各种设备主机名的文件。但是我希望 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 和任何类似深度的文件。但是,我想忽略该深度的任何文件的上下文。有什么建议么?

谢谢

4

1 回答 1

2

跟进:

@files = grep { !-d $_ } @files;
  -or-
@files = grep { -f $_ } @files;

你也可以使用类似File::Find::Rule的东西。

my @files = File::Find::Rule->file->in('/tftpboot/configs');
于 2013-10-07T14:12:05.990 回答