Quiero cambiar el destino de un enlace simbólico existente, sin eliminar el enlace o el destino anterior.
Anteriormente he creado un enlace simbólico a un directorio como el siguiente:
$ 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/
Ahora quiero cambiar esto, para vincular al otro directorio:
$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7
Pero no funciona sin ningún error:
$ 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/
Alguna ayuda ?
command-line
symbolic-link
Seyed Mohammad
fuente
fuente
sudo ln -s jdk1.7.0_04/ oracle-jdk-7
. Tenga en cuenta la barra después04
.Respuestas:
Para crear un enlace simbólico a un directorio , use la opción 'n':
DESTINATION_DIRECTORY
es el nombre del enlace de destino;LINK_NAME
es el nombre del enlace.f
opción significa reemplazar el enlace existente (es decir, eliminarlo primero).La
n
opción es un poco complicada. Creo que su comando puede haber creado un enlacejdk1.7.0_07
dentro del directoriojdk1.7.0_04
, a través del enlace enoracle-jdk-7
lugar de reemplazar el enlace. Si es así, debe eliminar el enlace para evitar confusiones.fuente
T
, es decirln -sfT TARGET LINK_NAME