即使使用 sudo 也无法回显 "hello" > x.txt?

Pat*_*ryk 100 permissions command-line bash sudo

可能重复:
sudo 和重定向输出

我正在尝试在 /var/www 中创建一个文件,但即使sudo这样也失败了:

user@debVirtual:/var/www$ sudo echo "hello" > f.txt
-bash: f.txt: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我使用 时sudo nano,我可以将某些内容保存到此文件中。

为什么我不能用sudo echo

gei*_*rha 199

重定向是在 sudo 启动之前由 shell 完成的。因此,要么确保重定向发生在具有正确权限的 shell 中

sudo bash -c 'echo "hello" > f.txt'
Run Code Online (Sandbox Code Playgroud)

或使用三通

echo "hello" | sudo tee f.txt  # add -a for append (>>)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。前一个在 Debian 上对我不起作用,但第二个选项工作得很好。 (3认同)