我正在使用 GCP Linux 虚拟机并尝试执行一个文件并将结果写入一个新文件。代码如下所示:
./segment.sh inputfile.txt > outputfile.txt
但是,当我这样做时,我收到的消息是permission denied for outputfile.txt
我也尝试过
sudo sh -c ./segment.sh inputfile.txt > outputfile.txt
但收到同样的消息permission denied for outputfile.txt
我怎样才能将结果写入outputfile.txt
?outputfile.txt
在执行上述操作之前我需要创建一个空文件吗?
答案1
根据提供的信息,问题似乎是您没有当前目录的写入权限。这个答案假设您需要从给定目录运行脚本并且权限等是“正确的”。
你和你的……非常接近sudo sh
,我想这可能会起作用。需要注意的是,脚本运行为root
,这可能不是您想要的。
sudo sh -c './segment.sh inputfile.txt > outputfile.txt'
此替代方案允许脚本以“您”身份运行,sudo
仅调用以写入文件:
./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null
如果您遇到sudo
密码提示问题,您可以尝试:
sudo : && ./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null