暗无天日

=============>DarkSun的个人博客

如何使用sudo命令来添加内容到文件中

https://www.cyberciti.biz/faq/sudo-append-data-text-to-file-on-linux-unix-macos/ 中看到的

当我们想往root所属文件中添加内容时,你可能会写出这样的语句

sudo echo '192.168.1.254 route' >> /etc/hosts

然而,这种写法是错误的,它的意思是执行sudo命令,然后将sudo命令的结果添加到/etc/hosts中.

所以,当你用非root用户执行上一语句时,会提示 bash: /etc/hosts: Permission denied.

正确的做法是为sudo命令使用tee命令或者shell本身:

  1. 使用tee命令

    echo '192.168.1.254 router' | sudo tee -a /etc/hosts
    
  2. 使用shell本身

    sudo sh -c 'echo "192.168.1.254 router" >> /etc/hosts'