我有一个 perl 脚本,它读取一个目录并打印出该目录的文件等等,但是我无法这样做,因为我没有读取权限..
sub func {
my $some_dir = $_[0];
opendir(my $DIR, $some_dir) or die "ERROR!";
while (my $file = readdir($DIR)) {
if (-r $file) { # Read permissions
print "hurray $file!\n";
if (-d $file) { # Directory
print "entering dir...\n";
func($file);
}
} else { # No read permissions..
print "no permissions for $file\n";
}
}
return;
}
如果我使用文件夹结构运行此代码:
file
folder
-file
-file
-folder
--file
--file
我得到:
hurray file!
hurray folder!
entering dir..
no permissions for file
no permissions for file
no permissions for file # no idea why?? should be folder
no permissions for file
no permissions for file
所以它只打印起始目录中的文件/文件夹,其他所有内容都没有读取权限。然后我尝试chmod 777 file
对子目录中的所有文件执行操作,但我得到了相同的结果..
有任何想法吗?
谢谢。
编辑 - 添加了一些东西来消除混乱。