My basic understanding of a symlink is as a special file, a file that contains a string path to another file. The kernel's VFS abstracts a lot of that away but is there any reason why symlinks seem to be impossible to edit?
In other words: Can I edit a symlink? If not, why not?
I do understand that there are various ways of replacing symlinks (two alternatives are currently in the answers section) but it would be interesting to get an explanation on why replacement seems to be the only way to deal with symlinks. Why can't you just change where they point?
Best Answer
Given that
-f
just does a silent replacement, you can do an atomic replacement withmv -T
(-T makes it work even if /loc.../link is a directory):linkname
is accessible throughout the process.