foo/baradalah direktori (dan Anda memiliki izin pencarian foountuk dapat menentukan itu foo/baradalah direktori). Dalam hal itu, ketika Anda melakukannya:
ln -s new/target link
atau
ln -fs new/target link
Itu dipahami sebagai membuat targetsymlink baru di dalam linkdirektori ( linkadalah direktori karena itu adalah symlink ke foo/bardirektori). Jadi, Anda akan benar-benar membuat:
foo/bar/target -> new/target
Untuk mengatasinya, GNU lnmemiliki -Topsi agar nama tautan selalu dianggap sebagai nama tautan, dan bukan sebagai direktori untuk membuat tautan. Jadi, dengan GNU ln:
ln -fsT new/target link
akan bekerja. Seperti sebelumnya, itu akan menghapus linksymlink asli dan membuatnya lagi dengan new/targetsebagai target (dan proses 'euid dan egid sebagai pemilik).
GNU lnjuga memiliki -nopsi. Ini berfungsi seperti -Tkecuali ketika linksebenarnya merupakan direktori nyata dalam hal ini masih akan membuat symlink di dalam direktori itu (bukannya gagal dengan kesalahan).
Mudah-mudahan, opsi terbaik Anda adalah menghapus tautan terlebih dahulu dan kemudian membuatnya kembali:
rm -f link && ln -s new/target link