我有一個Perl腳本讀取目錄,並打印出的文件中其他的事情,目錄,但是我不能這樣做,因爲我沒有讀取權限..即使我已將它們設置在xubuntu中,也沒有讀取權限?
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
所以只打印是在起始目錄中的文件/文件夾,一切^ h因爲沒有讀取權限。我試着然後做chmod 777 file
所有的子目錄中的文件,但我得到了相同的結果..
任何想法?
謝謝。
編輯 - 增加了一些東西清理混亂。
你有你的文件夾'execute'位設置? – devnull
我相信是這樣的,做'ls -l'會顯示'drwxrwxrwx'這個文件夾,我試圖讀取其中的內容。 – Travv92
也許你應該嘗試在失敗消息中打印文件名,例如''沒有'$ file'的權限\ n「'。 – TLP