【问题标题】:Unable to set permission for directory in Perl无法在 Perl 中为目录设置权限
【发布时间】:2020-01-13 10:12:29
【问题描述】:

我正在尝试在当前路径中创建一个名为 mydir 的目录,我正在使用 File::Path 模块执行 perl 脚本。

如果目录尚不存在,则正在创建目录,但我无法将目录权限设置为777。 y 默认设置权限为755

这是我的代码。

use File::Path qw(make_path remove_tree);

if (! -d "mydir") {
    if (!make_path( "mydir", {
            verbose => 1,
            mode => 0777,
            owner => "vinod",
    })) {
            print  "Couldn't create dir\n";
            return -1;
    }
}

我希望创建具有0777权限的目录

【问题讨论】:

    标签: perl chmod mkdir


    【解决方案1】:

    使用chmod 而不是mode 参数。类似的东西:

    make_path "mydir", {
                verbose => 1,
                chmod   => 0777,
                owner   => "vinod"
    }
    

    【讨论】:

    • 谢谢@miguel。无论您在chmod => 中授予什么权限,默认情况下它都是使用755 创建的。如果您手动执行此操作,它会起作用。我在想这是否与我使用的操作系统版本有关?
    【解决方案2】:

    chmod 值应该是十进制,你使用的是八进制。尝试将值更改为 511

    【讨论】:

    • 八进制 0777 和十进制 511 解析后是等价的。
    猜你喜欢
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多