我想按照以下方式做点什么:
echo "Append string" >> protected_file
但是,由于此文件被写保护,我收到错误。跑步:
sudo echo "Append string" >> protected_file
似乎在echo命令上运行sudo,仍然给我权限错误,我该如何附加到这个文件?
答案 0 :(得分:10)
echo "Append string" | sudo tee -a protected_file >/dev/null
答案 1 :(得分:3)
对于字面答案,
sudo sh -c 'echo "Append string" >> protected_file'
但我原则上同意ShivanRaptor。
说明:>>
是一个shell运算符。如果您调用sudo command
,则不会运行另一个shell;因此,您不能重定向echo
而不重定向sudo
(最终,在进行重定向时会给您错误的用户ID)。诀窍是在sudo
内启动一个单独的shell,您可以在其中发出重定向操作符。
答案 2 :(得分:0)
或试试这个:
echo "echo 'append string' >> protected_file" | sudo bash
答案 3 :(得分:0)
将所有内容放在一起并修复其中一个答案,有三种方法:
sudo su root -c "echo 'append string' > protected_file"
echo "echo 'append string' >> protected_file" | sudo bash
echo "append string" | sudo tee -a protected_file >/dev/null