我想知道这两行之间的区别:
sudo sed 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub >/etc/default/grub
和
sudo sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub
似乎有区别,因为第一个返回Permission denied错误而另一个没有。
答案 0 :(得分:4)
正如@sarathi所说,-i
标志就地修改了文件。您获得权限被拒绝错误的原因是因为/etc/default/grub
可能只能由root修改。
你的第一个命令:
sudo sed 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub >/etc/default/grub
以超级用户身份运行sed
,当sed
写入其stdout时,它不会执行任何有用的操作。然后它尝试覆盖/etc/default/grub
作为当前用户,这是不允许的。
在第二个命令中:
sudo sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub
该文件由sed
本身修改,它以root身份运行。
答案 1 :(得分:1)
-i
标志说是原地更换。