Gibi bir bağlantınız olduğunda:
link -> foo/bar
ve bunu değiştirmek istiyorum:
link -> new/target
Dikkate alınması gereken iki durum vardır:
foo/barbir dizin değil veya mevcut değil veya arama erişiminiz yok foo. Sonra
ln -s new/target link
linkzaten var olduğundan başarısız olacak , ancak standardı kullanarak bunun üstesinden gelebilirsiniz:
ln -fs new/target link
foo/barBir dizindir (ve arama iznine sahip fooolduğunu belirlemek için muktedir foo/barbir dizindir). Bu durumda ne zaman:
ln -s new/target link
veya
ln -fs new/target link
Bu target, linkdizinin içinde yeni bir sembolik bağlantı oluşturmak olarak anlaşılır ( linkbir klasördür, çünkü dizinin bir bağlantısıdır foo/bar). Yani aslında bir tane yaratacaksınız:
foo/bar/target -> new/target
Bunun üstesinden gelmek için GNU ln, -Tlink adının her zaman link adı olarak kabul edilebileceği ve içinde link (ler) yaratacak bir dizin olarak görülmeyeceği bir seçeneğe sahiptir . Öyleyse GNU ile ln:
ln -fsT new/target link
çalışacak. Daha önce olduğu gibi, orijinal linksembolik bağı kaldırır ve new/targethedef olarak yeniden yaratır (ve işlem sahibi ve sahibi olarak abid ve aynen).
GNU’nun lnda bir -nseçeneği var. Gerçekte -Tne zaman linkgerçek bir dizin olduğu gibi çalışır , bu durumda o dizinde bir link oluşturacaktır (bir hatayla başarısız olmak yerine).
Taşınabilir olarak, en iyi seçeneğiniz önce bağlantıyı kaldırmak ve sonra yeniden oluşturmaktır:
rm -f link && ln -s new/target link
Çoğu sistemde, sembolik bağlantılar üzerindeki izinler göz ardı edilir ve genellikle buna sabitlenir rwxrwxrwx.
Sembolik bağlantı izinlerinin önemli olduğu sistemlerde (hedefini çözebilmek için bir sembolik bağlantı için okuma iznine ihtiyaç duyduğunuz OS / X gibi), genellikle bunları değiştirmenin bir yolu vardır ( chmod -hOS / X'te).
Mülkiyet, yukarıda olduğu gibi, çoğu sistemde sembolik bağlantıda belirtilen dosyaya erişim ile ilgili olmamakla birlikte, ana dizinin veya kotaların bitiyle başka bir alaka düzeyine sahip olabilir t... ) ve onu değiştirmek için standart bir komut vardır:
chown -h user[:group] the-link
chgrp -h group the-link