我想知道这两行之间的区别:
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 错误,而另一个则没有。
正如@sarathi 所说,该-i
标志会就地修改文件。您收到权限被拒绝错误的原因是因为/etc/default/grub
可能只能由 root 修改。
你的第一个命令:
sudo sed 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub >/etc/default/grub
以超级用户身份运行,在写入其标准输出时sed
不会做任何有用的事情。sed
然后它尝试以/etc/default/grub
当前用户身份覆盖,这是不允许的。
在第二个命令中:
sudo sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub
该文件是由sed
自己修改的,它以 root 身份运行。
-i
sed 的标志表示就地替换。