ディレクトリを読み取り、特にそのディレクトリのファイルを出力する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
サブディレクトリ内のすべてのファイルに対して実行しようとしましたが、同じ結果が得られます..
何か案は?
ありがとう。
編集 - 混乱を解消するためにいくつか追加しました。