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 ?
command-line
symbolic-link
Seyed Mohammad
quelle
quelle
sudo ln -s jdk1.7.0_04/ oracle-jdk-7
. Beachten Sie den Schrägstrich danach04
.Antworten:
Verwenden Sie die Option 'n', um einen symbolischen Link zu einem Verzeichnis zu erstellen :
DESTINATION_DIRECTORY
ist der Name des Linkziels;LINK_NAME
ist der Name des Links.f
Option bedeutet, den vorhandenen Link zu ersetzen (dh ihn zuerst zu löschen).Die
n
Option ist etwas kompliziert. Ich glaube, Ihr Befehl hat möglicherweise über den Link einen Link zumjdk1.7.0_07
Verzeichnis erstelltjdk1.7.0_04
,oracle-jdk-7
anstatt den Link zu ersetzen. In diesem Fall sollten Sie den Link löschen, um Verwirrung zu vermeiden.quelle
T
, das heißtln -sfT TARGET LINK_NAME