Sembolik bağın yerini değiştiremez

20

Mevcut bir sembolik bağlantının adresini, bağlantıyı veya eski hedefi kaldırmadan değiştirmek istiyorum.

Önceden aşağıdaki gibi bir dizine sembolik bir bağlantı oluşturdum:

$ cd /usr/lib/jvm/

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07

$ sudo ln -s jdk1.7.0_04 oracle-jdk-7

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:22  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

Şimdi bunu değiştirmek, diğer dizine bağlanmak istiyorum:

$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7

Ancak, herhangi bir hata olmadan çalışmaz:

$ ls -lh
drwxr-xr-x 8 uucp  143 4.0K Sep 10 20:36  jdk1.7.0_04
drwxr-xr-x 8 uucp  143 4.0K Aug 29 05:42  jdk1.7.0_07
lrwxrwxrwx 1 root root   12 May 11 11:27  oracle-jdk-7 -> jdk1.7.0_04/

Herhangi bir yardım?

    
sordu Seyed Mohammad 10.09.2012 18:11

1 cevap

29

dizine bir sembolik bağlantı oluşturmak için, 'n' seçeneğini kullanın:

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY , link hedefinin adıdır;
  • LINK_NAME bağlantının adıdır.
  • f seçeneği mevcut bağlantıyı değiştirmek (yani, önce silmek) anlamına gelir.

n seçeneği biraz karmaşıktır. Komutunuzun, bağlantıyı değiştirmek yerine jdk1.7.0_07 dizinine jdk1.7.0_04 dizininde oracle-jdk-7 için bir bağlantı oluşturmuş olabileceğini düşünüyorum. Öyleyse, karışıklığı önlemek için bağlantıyı silmeniz gerekir.

    
verilen cevap Marty Fried 10.09.2012 18:26

Etiketlerdeki diğer soruları oku