I have a Perl script which has the following code
#/usr/bin/perl use strict; use warnings; chmod -R 775,"path-to-current-folder";
Upon running this script, I am unable to access the current folder (and open this script of course) anymore. When seeing the folder in Konqueror, there is an additional lock in the folder icon. Can anyone tell me what happened and how can I undo this?
I have checked the permission of this folder, apparently it was changed to d---------
. I have solved this problem by resetting the permission, yet it would be great if anyone could explain why this happened. Thanks.
Advertisement
Answer
I think you’re confusing the ‘chmod’ shell command with the ‘chmod’ perl function. The latter takes a single list as a parameter the first element of which must be the numeric code experessed in octal. From perldoc -f chmod
;
chmod LIST Changes the permissions of a list of files. The first element of the list must be the numeric mode, which should probably be an octal number, and which definitely should not be a string of octal digits: 0644 is okay, but "0644" is not. Returns the number of files successfully changed. See also "oct" if all you have is a string. $cnt = chmod 0755, "foo", "bar"; chmod 0755, @executables; ... etc ...
The former – that is, the shell – has a -R
switch. See man chmod
for details.