是否使用bash将内容附加到根文件?

是否使用bash将内容附加到根文件?,bash,Bash,我能行 echo -e "foo\nbar" >> foobar 但我做不到: echo -e "protected" >> foobar sudo chown root:root foobar sudo echo -e "foo\nbar" >> foobar -bash: foobar: Permission denied 如果我尝试 sudo sh -c 'echo -e "foo\nbar" >> toto' 我从sh手册页的文件中

我能行

echo -e "foo\nbar" >> foobar
但我做不到:

echo -e "protected" >> foobar
sudo chown root:root foobar

sudo echo -e "foo\nbar" >> foobar
-bash: foobar: Permission denied
如果我尝试

sudo sh -c 'echo -e "foo\nbar" >> toto'
我从sh手册页的文件中获得-e foo:

将字符括在单引号中可以保留 引号中的每个字符。单个报价可能不会出现 在单引号之间,即使前面有反斜杠

尝试:


sudo sh-c echo-e\foo\nbar\>>toto

如果你有完整的sudo,另一个选项基本上做同样的事情。 有时候有选择是很好的

echo 'printf "%s\n" foo bar >> toto' | sudo su

将命令printf%s\n foo bar>>toto传输到sudo su的sdtin,默认为root。添加一个用户,您可以作为任何人执行。

您可以自己打印数据,并使用sudo附加到文件中:

printf '%s\n' foo bar | sudo tee -a foobar

所有权和权限是两件不同的事情。stat foobar返回了什么?@Kenster我想知道为什么tag bash会有108'000个问题,这与编程无关:@Novox因为很多很多人都会犯同样的错误。不要使用echo;它的工作原理因壳而异。改用printf。