diary/Kojima

・覚え書き sed の -i オプション

まぁ、-i オプションの動きを考えてみればそんなものかと思うけど、ちょっとハマったので。

% echo "ABC" > file1
% ln -sf file1 file2
% ls -l
合計 8,192
-rw-r--r-- 1 kojima users 4 11月 20日  13:36 file1
lrwxrwxrwx 1 kojima users 5 11月 20日  13:36 file2 -> file1

% sed -i -e 's/ABC/DEF/' file2
% ls -l
合計 8,192
-rw-r--r-- 1 kojima users 4 11月 20日  13:36 file1
-rw-r--r-- 1 kojima users 4 11月 20日  13:36 file2   <= symlink が切れて file2 が独自になる
% cat file1
ABC             <= file1 はそのまま
% cat file2
DEF             <= file2 は修正される

sed のソースは眺めてないけど、多分 -i オプションの動作は、一時ファイルに結果を書き出して、一時ファイルを元のファイル名にする(必要ならば元のファイルはバックアップにする)、 みたいな処理になっているんだろうな。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:42