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
$ 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.
Oluşturulduktan sonra anonim tür özell...
ADT 22,3'ünü (android 4.4) - hata &quo...
Nasıl daha sonra düz metin alma için e...
'Eclipse içine bir proje aldıktan...
Git bir sembolik bağlantı dosyaları iç...