・覚え書き 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 オプションの動作は、一時ファイルに結果を書き出して、一時ファイルを元のファイル名にする(必要ならば元のファイルはバックアップにする)、 みたいな処理になっているんだろうな。