设置文件权限所需的 perl chmod 帮助

发布于 2024-12-21 01:31:43 字数 282 浏览 1 评论 0原文

下面是我的代码:

foreach my $node (@switch_list) { 
    chomp $node;
    print "$node \n";
    my $f3 = ">$node.txt";
    chmod 0755, $f3;
    open FILE3, "$f3" or die "Could not open file:$! \n";
}

这里我想创建许多具有完全权限的文件,但似乎使用创建的文件 权限:0640 而不是 0755。

Below is my code:

foreach my $node (@switch_list) { 
    chomp $node;
    print "$node \n";
    my $f3 = ">$node.txt";
    chmod 0755, $f3;
    open FILE3, "$f3" or die "Could not open file:$! \n";
}

Here I want to create many files with full permission but it seems that file created with
permission: 0640 and not 0755.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小猫一只 2024-12-28 01:31:43

您正在做的事情:

my $f3 = ">$node.txt";
chmod 0755, $f3;

因此 Perl 查找名为 >$node.txt 的文件。

相反,做:

my $f3 = "$node.txt";
chmod 0755, $f3;
open FILE3, ">", "$f3" or die "Could not open file:$! \n";

You are doing:

my $f3 = ">$node.txt";
chmod 0755, $f3;

So Perl looks for a file named >$node.txt.

Instead do:

my $f3 = "$node.txt";
chmod 0755, $f3;
open FILE3, ">", "$f3" or die "Could not open file:$! \n";
囚你心 2024-12-28 01:31:43

codaddict 是正确的,因为您已将模式包含在 $f3 字符串中,这可能会使 chmod 失败。

但是,比使用 chmod 更好的解决方案可能是使用 umask,我相信它可以与 open 一起使用(尽管文档只特别提到 sysopen,而且我不在 Linux 中,所以我可以尝试一下出去)。

codaddict are correct in that you have included the mode in your $f3 string, which probably makes chmod fail.

However, a better solution than to use chmod might be to use umask, which I believe works with open (although the documentation only specifically mentions sysopen, and I am not in linux so I can try it out).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文