1
我正在嘗試寫入現有文件並同時更改其權限。例如:寫入現有文件並更改權限
use warnings;
use strict;
use File::Slurp 'write_file';
my $script="#! /bin/bash
echo \"Hello\"
";
my $saveName='test.sh';
unlink $saveName if -f $saveName;
writeFile($saveName,$script,0755);
writeFile($saveName,$script,0775);
sub writeFile {
my ($saveName,$script,$mode) = @_;
printf "Writing file with permissions %04o\n", $mode & 07777;
write_file($saveName,{perms=>$mode},\$script);
my $actualMode = (stat($saveName))[2];
printf "Actual file permissions are %04o\n", $actualMode & 07777;
}
這使輸出:
Writing file with permissions 0755
Actual file permissions are 0755
Writing file with permissions 0775
Actual file permissions are 0755
爲什麼是第二寫操作之後的許可仍然0755
? (我會想到它是0775
)
謝謝,但這對我來說似乎是一種奇怪的方法。這意味着如果你想使用'perms'選項來'write_file',你首先必須檢查文件是否已經存在。如果是這樣的話,你必須明確地刪除它,或者在你編寫文件後使用'chmod' .. – 2014-10-19 08:46:55
這不是由模塊控制,而是由'sysopen'控制。我將添加文檔以向您展示。 – TLP 2014-10-19 09:05:08