Tidak dapat mengubah tujuan tautan simbolik

21

Saya ingin mengubah tujuan tautan simbolis yang ada, tanpa menghapus tautan atau tujuan lama.

Saya sebelumnya telah membuat tautan simbolis ke direktori seperti berikut:

$ 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/

Sekarang saya ingin mengubah ini, untuk menautkan ke direktori lain:

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

Tapi itu tidak berfungsi tanpa kesalahan:

$ 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/

Ada bantuan?

Mohammad Sayyid
sumber
Mungkin ini detail kecil, tetapi sepertinya perintah yang Anda jalankan sebenarnya sudo ln -s jdk1.7.0_04/ oracle-jdk-7. Catat slash sesudahnya 04.
wjandrea

Jawaban:

31

Untuk membuat tautan simbolis ke direktori , gunakan opsi 'n':

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY adalah nama target tautan;
  • LINK_NAME adalah nama tautannya.
  • The fpilihan berarti untuk menggantikan link yang ada (yaitu, menghapusnya pertama).

The npilihan adalah sedikit rumit. Saya yakin perintah Anda mungkin telah membuat tautan ke jdk1.7.0_07dalam direktori jdk1.7.0_04, melalui tautan oracle-jdk-7alih-alih mengganti tautan. Jika demikian, Anda harus menghapus tautan untuk menghindari kebingungan.

Marty Fried
sumber
Anda juga bisa menggunakan opsi T, yaituln -sfT TARGET LINK_NAME
wjandrea