When using the stream editor (sed
) with the -i
option, it does break
links. Like this:
~$ mkdir test
~$ cd test
~/test$ echo Hello > f1
~/test$ ln -s f1 f2
~/test$ ls -l
total 4
-rw-r--r-- 1 tonk tonk 6 May 4 09:28 f1
lrwxrwxrwx 1 tonk tonk 2 May 4 09:28 f2 -> f1
~/test$ sed -i.bck 's/Hello/Bello/' f2
~/test$ ls -l
total 8
-rw-r--r-- 1 tonk tonk 6 May 4 09:28 f1
-rw-r--r-- 1 tonk tonk 6 May 4 09:29 f2
lrwxrwxrwx 1 tonk tonk 2 May 4 09:28 f2.bck -> f1
~/test$ rm f2 f2.bck
~/test$ ln f1 f2
~/test$ ls -l
total 8
-rw-r--r-- 2 tonk tonk 6 May 4 09:28 f1
-rw-r--r-- 2 tonk tonk 6 May 4 09:28 f2
~/test$ sed -i.bck 's/Hello/Bello/' f2
~/test$ ls -l
total 12
-rw-r--r-- 2 tonk tonk 6 May 4 09:28 f1
-rw-r--r-- 1 tonk tonk 6 May 4 09:29 f2
-rw-r--r-- 2 tonk tonk 6 May 4 09:28 f2.bck
According to the sed
developers this is a feature and not a bug.
Therefore they will add the --follow-symlinks
option in version 4.2.
Yep. It’s not a bug.
I have corrected the vigit
program, because it uses the -i
of sed
.
The new version can be found here