0

我想知道这两行之间的区别:

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 错误,而另一个则没有。

4

2 回答 2

4

正如@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 身份运行。

于 2012-12-29T08:52:05.270 回答
1

-ised 的标志表示就地替换。

于 2012-12-29T08:49:13.840 回答