在不指定備份檔案的情況下進行就地編輯會覆蓋只讀許可權

sed -i -e cmd file 將修改 file,即使其許可權設定為只讀。

此命令的行為類似於

sed -e cmd file > tmp; mv -f tmp file

而不是

sed -e cmd file > tmp; cat tmp > file; rm tmp

以下示例使用 gnu sed

$ echo 'Extremely important data' > input
$ chmod 400 input  # Protect that data by removing write access
$ echo 'data destroyed' > input
-bash: input: Permission denied
$ cat input  
Extremely important data (#phew! Data is intact)
$ sed -i s/important/destroyed/ input
$ cat input
Extremely destroyed data (#see, data changed)

通過使用 i 選項指定 SUFFIX 來建立備份可以減輕這種情況:

$ sed -i.bak s/important/destroyed/ input
$ cat input
Extremely destroyed data
$ cat input.bak
Extremely important data