it-swarm.com.de

Das Ziel der symbolischen Verknüpfung kann nicht geändert werden

Ich möchte das Ziel eines vorhandenen symbolischen Links ändern, ohne den Link oder das alte Ziel zu entfernen.

Ich habe zuvor einen symbolischen Link zu einem Verzeichnis wie folgt erstellt:

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

Jetzt möchte ich das ändern, um auf das andere Verzeichnis zu verlinken:

$ Sudo ln --force -s jdk1.7.0_07 Oracle-jdk-7

Aber es funktioniert nicht ohne Fehler:

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

Irgendeine Hilfe ?

21
Seyed Mohammad

Verwenden Sie die Option 'n', um einen symbolischen Link zu einem Verzeichnis zu erstellen:

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY ist der Name des Verbindungsziels;
  • LINK_NAME ist der Name des Links.
  • Die Option f bedeutet, den vorhandenen Link zu ersetzen (dh ihn zuerst zu löschen).

Die Option n ist etwas kompliziert. Ich glaube, Ihr Befehl hat möglicherweise einen Link zu jdk1.7.0_07 innerhalb des Verzeichnisses jdk1.7.0_04 über den Link Oracle-jdk-7 erstellt, anstatt den Link zu ersetzen. In diesem Fall sollten Sie den Link löschen, um Verwirrung zu vermeiden.

31
Marty Fried