Bunu yapmanın uygun yolu -n, --no-dereferenceseçeneği böyle kullanmaktır .
$ ln -snf foo2 bar
Bu ln, varolan symlink'i bir dosya olarak değerlendirir. Aksi takdirde, dereferences bariçin foo1, içine alçalır foo1ve orijinal kullanır TARGETolarak adını LINK_NAMEve o en neden sembolik bağ sona foo2içeride oluşturulan foo1dizinde. Manpage lnşu durumu belirtiyor ...
-n, --no-dereference
bir dosyaya sembolik bir bağlantıysa, LINK_NAME dosyasını normal bir dosya olarak ele al
rehber
Aşağıda, isteğe bağlı lnve seçeneksiz 8.21 sürümüne sahip Arch Linux masaüstümde kabuk çıktısı --no-dereferencevar, --no-dereferenceseçenek olmadan yaptığınız aynı sonuçları aldım , ancak --no-dereferencebeklendiği gibi çalıştı.
$ mkdir foo1 foo2
$ ln -s foo1 bar
$ ls -l bar
lrwxrwxrwx 1 drew users 4 Sep 17 12:51 bar -> foo1
$ ln -sf foo2 bar
$ ls -l bar
lrwxrwxrwx 1 drew users 4 Sep 17 12:51 bar -> foo1
$ ls -l foo1
total 0
lrwxrwxrwx 1 drew users 4 Sep 17 12:51 foo2 -> foo2
$ ln -snf foo2 bar
$ ls -l bar
lrwxrwxrwx 1 drew users 4 Sep 17 12:52 bar -> foo2
ln --version?