是否使用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。