SORU
23 EYLÜL 2009, ÇARŞAMBA


Sembolik bir bağ oluşturulduktan sonra işaret ne değiştirebilirsiniz?

Herhangi bir işletim sistemi sağlayan bir düzenek (sistem çağrısı — komut satırı programı) değiştirmek için başvurulan yol tarafından bir sembolik bağlantı (sembolik link) — başka ile bağlantısını kesmek eski ve yeni bir tane oluşturmak mı?

POSIX standardı değildir. Solaris 10 değil. MacOS X 10.5 (Leopard) değildir. (Olabildiğince de AİX eminim nor-UX HP değil. Böyle bir sistem yok Linux Linux system calls, bu listeye bakarsak da denebilir.)

Yaptığı bir şey var mı?

(Cevap bekliyorum"".)


Negatif bir şeyi ispatlamak zor olduğundan, bu soruyu yeniden organize edelim.

Eğer bildiğiniz bazı (Unıx-like) işletim sistemi değil zaten listede yok sistem çağrısı için yeniden değer bir sembolik bağ (dize döndürülen tarafından readlink()) çıkarma olmadan eski sembolik bağ oluşturmak ve yeni bir tane ekleyin lütfen — ya da onlara bir cevap.

CEVAP
23 EYLÜL 2009, ÇARŞAMBA


Hayır bildiğim kadarıyla yapamazsın. Onu kaldırmak ve yeniden oluşturun.Aslında, bir sembolik bağ üzerine ve yol adı tarafından başvurulan güncelleştirme, böylece:

$ ln -s .bashrc test
$ ls -al test
lrwxrwxrwx 1 pascal pascal 7 2009-09-23 17:12 test -> .bashrc
$ ln -s .profile test
ln: creating symbolic link `test': File exists
$ ln -s -f .profile test
$ ls -al test
lrwxrwxrwx 1 pascal pascal 8 2009-09-23 17:12 test -> .profile

EDİT: OP bir yorumda belirttiği gibi, --force seçeneğini kullanarak ln symlink() önce unlink() için bir sistem çağrısı yapmak olacaktır. Aşağıda, linux kutumu bunu kanıtlamak için strace çıkış:

$ strace -o /tmp/output.txt ln -s -f .bash_aliases test
$ grep -C3 ^unlink /tmp/output.txt 
lstat64("test", {st_mode=S_IFLNK|0777, st_size=7, ...}) = 0
stat64(".bash_aliases", {st_mode=S_IFREG|0644, st_size=2043, ...}) = 0
symlink(".bash_aliases", "test")        = -1 EEXIST (File exists)
unlink("test")                          = 0
symlink(".bash_aliases", "test")        = 0
close(0)                                = 0
close(1)                                = 0

Son cevap herhalde "" hayır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caramthros

    Caramthros

    10 AĞUSTOS 2007
  • Dopelives

    Dopelives

    30 Temmuz 2009
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008