我为什么不能在/ etc /中sudo回显一行?

时间:2019-02-19 19:54:55

标签: linux echo file-permissions sudo vi

我在centos上,我确实sudo echo 'testline'>>/etc/test/test-bash: /etc/test/test: Permission denied

但是,当我执行sudo vi /etc/test/test并插入testline并执行:wq时,写得很好,为什么会这样?

3 个答案:

答案 0 :(得分:4)

您需要将整个语句(包括重定向)包装到一个组中,以便sudo围绕它延伸。

sudo bash -c "echo 'testline' >> /etc/test/test"

请注意:如果/etc/test还不存在,同样也会失败。

答案 1 :(得分:1)

重定向在运行sudo之前由外壳处理,而不是其中的一部分。请改用tee,以便sudo运行实际上打开文件进行写入的过程。

echo 'testline' | sudo tee -a /etc/test/test > /dev/null

答案 2 :(得分:0)

这些人已经介绍过的相同一般解决方案的另一种语法:

echo "echo 'testline'>>/etc/test/test" | sudo su