Bunu yapmanın uygun yolu -n, --no-dereference
seçeneği böyle kullanmaktır .
$ ln -snf foo2 bar
Bu ln
, varolan symlink'i bir dosya olarak değerlendirir. Aksi takdirde, dereferences bar
için foo1
, içine alçalır foo1
ve orijinal kullanır TARGET
olarak adını LINK_NAME
ve o en neden sembolik bağ sona foo2
içeride oluşturulan foo1
dizinde. 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ı ln
ve seçeneksiz 8.21 sürümüne sahip Arch Linux masaüstümde kabuk çıktısı --no-dereference
var, --no-dereference
seçenek olmadan yaptığınız aynı sonuçları aldım , ancak --no-dereference
beklendiğ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
?