我想做一些类似的事情:
echo "Append string" >> protected_file
但是,由于此文件受写保护,我收到错误消息。跑步:
sudo echo "Append string" >> protected_file
似乎在 echo 命令上运行 sudo ,仍然给我权限错误,我该如何附加到这个文件?
echo "Append string" | sudo tee -a protected_file >/dev/null
对于一个字面的答案,
sudo sh -c 'echo "Append string" >> protected_file'
但我原则上同意 ShivanRaptor。
解释:>>
是一个shell操作符。如果调用sudo command
,则不会运行另一个 shell;因此,如果不进行重定向,您将无法echo
进行重定向sudo
(最终,在进行重定向时会为您提供错误的用户 ID)。诀窍是在内部启动一个单独的外壳sudo
,您可以在其中发出重定向运算符。
或试试这个:
echo "echo 'append string' >> protected_file" | sudo bash
将它们放在一起并修复其中一个答案,有 3 种方法:
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