附加到受保护的文件

时间:2012-05-22 08:54:34

标签: macos bash shell unix

我想按照以下方式做点什么:

echo "Append string" >> protected_file

但是,由于此文件被写保护,我收到错误。跑步:

sudo echo "Append string" >> protected_file

似乎在echo命令上运行sudo,仍然给我权限错误,我该如何附加到这个文件?

4 个答案:

答案 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