これら2行の違いを知りたい:
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
最初のエラーは許可拒否エラーを返しますが、他のエラーは返さないため、違いがあるようです。
@sarathiが言ったように、-i
フラグはファイルをインプレースで変更します。アクセス許可が拒否されたというエラーが発生する理由/etc/default/grub
は、おそらくルートのみが変更できるためです。
最初のコマンド:
sudo sed 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub >/etc/default/grub
スーパーユーザーとして実行します。スーパーユーザーは、標準出力への書き込みsed
などの有用なことは何もしません。sed
次に、現在のユーザーとして上書きしようとします/etc/default/grub
が、これは許可されていません。
2 番目のコマンドでは:
sudo sed -i 's/GRUB_TIMEOUT=10/GRUB_TIMEOUT=3/' /etc/default/grub
ファイルはsed
ルートとして実行されているため、それ自体で変更されます。
-i
sed のフラグはインプレース置換を示しています。