设置文件权限需要perl chmod帮助
下面是我的代码:设置文件权限需要perl chmod帮助,perl,Perl,下面是我的代码: 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。您正在执行以下操作:
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。您正在执行以下操作:
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";
codaddict是正确的,因为您在
$f3
字符串中包含了模式,这可能会导致chmod
失败
然而,一个比使用
chmod
更好的解决方案可能是使用,我相信它可以与open
一起使用(尽管文档中只特别提到了sysopen
,我不在linux中,所以我可以尝试一下)。@Pradeep:你是什么意思open
将单参数foo.txt识别为创建(
)名为“foo.txt”
的文件的请求(尽管三参数形式更好)chmod
没有将“>”
视为特殊文件,因此它尝试对名为>foo.txt“
@KeithThompson-Pradeep”的文件进行操作,因为它是错误的,所以我删除了它。