为什么使用重定向、使用sudo
以下命令时会出现错误?
$ sudo printf "foo" >/etc/file
bash: /etc/file: Permission denied
$ sudo printf "foo" ~/file; cat ~file >/etc/file
bash: /etc/file: Permission denied
...但是当我使用编辑器或cp
.
我想我以前从未尝试过这个,所以我不知道我的系统是否有问题,或者这是否正常。这似乎有点限制正常,但是(?)也许它是有意限制的......(使用Ubuntu)
答案1
这是正常的。后面的文件>
不是由在 下运行的进程打开的sudo
,而是由 shell 打开的,而 shell 则不是。试试这个:
printf "foo" | sudo tee /etc/file