Symlinks are an abomination

$ pwd
/a/b
$ cd ..
$ rm -rf b
$ pwd
/d
$ ls -l /a
b -> /d/e
...
$ # Drat!  I've just removed the wrong set of files, d/e!

Even ln(1) needs a special flag to tell it if the target is a real file or a symlink! Which makes replacing existing symlinks extremely confusing.

Alternatives