运行Perl脚本意外锁定了一个文件夹

时间:2016-04-04 07:20:34

标签: linux perl chmod

我有一个Perl脚本,其中包含以下代码

#/usr/bin/perl
use strict; use warnings;
chmod -R 775,"path-to-current-folder";

运行此脚本后,我无法再访问当前文件夹(并打开此脚本)。在Konqueror中查看文件夹时,文件夹图标中还有一个锁。谁能告诉我发生了什么,我怎么能撤消这个?

我已检查此文件夹的权限,显然已更改为d---------。我通过重置权限解决了这个问题,但如果有人能解释为什么会发生这种情况,那就太好了。感谢。

1 个答案:

答案 0 :(得分:1)

我认为你将'chmod'hell命令与'chmod'perl函数混淆了。后者将单个列表作为参数,其第一个元素必须是以八进制表示的数字代码。来自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 ...

前者 - 即shell - 有一个-R开关。有关详细信息,请参阅man chmod