如何使用perl脚本获取目录的属性?

时间:2010-08-05 10:38:35

标签: perl

我希望将目录的详细信息与其中的文件和子目录数相同,并获得权限。

是的!在Linux机器上使用后退标记来执行命令很容易。但是有一种方法可以使脚本平台独立。

谢谢:)

2 个答案:

答案 0 :(得分:3)

您可以使用目录句柄(opendirreaddir)获取目录内容,使用File::stat获取权限

答案 1 :(得分:2)

您可能需要考虑使用Path::Class。这两者都为您提供了一个简单的界面,并且还可以为您处理所有跨平台的事物(包括平台上“\”和“/”之间的区别)。

   use Path::Class qw(file dir);

   my $dir = dir("/etc");

   my $dir_count = 0;
   my $file_count = 0;

   while (my $file = $dir->next) {
       # $file is a Path::Class::File or Path::Class::Dir object

       if ($file->is_dir) {
         $dir_count++;
       } else {
         $file_count++;
       }

       my $mode = $file->stat->mode;
       $mode = sprintf '%o', $mode;  # convert to octal "0755" form
       print "Found $file, with mode $mode\n";
   }
   print "Found $dir_count dirs and $file_count files\n";