如何在Linux中获取给定路径上的所有文件夹?

时间:2014-05-13 07:12:35

标签: perl glob

目录结构

Attachments/TADDE12345
Attachments/TADDE12346
Attachments/TADDE12347
Attachments/TADDE12348
Attachments/TADDE12349
Attachments/TADDE12350

我必须在附件目录中获取所有文件夹名称,而不使用任何cpan模块?

2 个答案:

答案 0 :(得分:5)

请参阅glob

  

在列表上下文中,返回一个(可能为空)文件名列表   扩展EXPR的值,例如标准的Unix shell   / bin / csh会这样做。在标量上下文中,glob遍历这些   文件名扩展,当列表用完时返回undef。

答案 1 :(得分:1)

如果您只需要来自给定路径的目录:

#!/usr/bin/perl                                                                               
use strict;
use warnings;              

my $dirpath = "/Attachments";

opendir(DIR, $dirpath);

while (my $entry = readdir DIR) {
    next if ($entry eq "." or $entry eq "..");
    $entry = $dirpath . $entry;
    print "$entry\n" if (-d $entry);
}

closedir DIR;