Sembolik bağın hedefi değiştirilemiyor


21

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

Daha önce aşağıdaki gibi bir dizine sembolik bir link 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 istiyorum, diğer dizine bağlanmak için:

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

Ancak hatasız ç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 ?


Belki bu küçük bir detay, ama koştuğun asıl komut gibi görünüyor sudo ln -s jdk1.7.0_04/ oracle-jdk-7. Sonrasında eğik çizgiyi not edin 04.
wjandrea

Yanıtlar:


31

Bir dizine sembolik bir link oluşturmak için 'n' seçeneğini kullanın:

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY bağlantı hedefinin adı;
  • LINK_NAME bağlantının adı.
  • fSeçeneği (yani önce silme) mevcut bağlantıyı değiştirmek anlamına gelir.

nSeçenek biraz karışık. Komutunuzun jdk1.7.0_07, dizini değiştirmek yerine jdk1.7.0_04, bağlantı oracle-jdk-7yerine dizini içine bir bağlantı oluşturduğuna inanıyorum . Öyleyse, karışıklığı önlemek için bağlantıyı silmelisiniz.


Opsiyonu da kullanabilirsiniz T, yaniln -sfT TARGET LINK_NAME
wjandrea
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.