我希望将目录的详细信息与其中的文件和子目录数相同,并获得权限。
是的!在Linux机器上使用后退标记来执行命令很容易。但是有一种方法可以使脚本平台独立。
谢谢:)
答案 0 :(得分:3)
您可以使用目录句柄(opendir和readdir)获取目录内容,使用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";