ln to create a link in a different directory, the semantics of creating hard and symbolic links differ. That is because a hard link contains a direct reference to its target's data, while a symbolic link is just a string containing a (possibly relative) path. You can get around this by using absoute paths, but then moving a subtree will break the symlink.
Just to recap, the other main differences between hard and symbolic links: Symbolic links can be left dangling when their target is removed; hard links cannot. Symbolic links can point to files on other partitions or disks, while hard links cannot.
- # create hard link in subdir which points to ../otherdir/file
- ln ../otherdir/file subdir/link
- # create symbolic link in subdir which points to ../otherdir/file
- ln -s ../../otherdir/file subdir/symlink
- # note the additional "../" which compensates the subdir
You need to login to post a comment.