No se puede cambiar el destino del enlace simbólico

20

Quiero cambiar el destino de un enlace simbólico existente, sin eliminar el enlace o el antiguo destino.

Anteriormente creé 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?

    
pregunta Seyed Mohammad 10.09.2012 - 16:11

1 respuesta

29

Para crear un enlace simbólico a un directorio , use la opción 'n':

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY es el nombre del destino del enlace;
  • LINK_NAME es el nombre del enlace.
  • La opción f significa reemplazar el enlace existente (es decir, eliminarlo primero).

La opción n es un poco complicada. Creo que su comando puede haber creado un enlace a jdk1.7.0_07 dentro del directorio jdk1.7.0_04 , a través del enlace oracle-jdk-7 en lugar de reemplazar el enlace. Si es así, debe eliminar el enlace para evitar confusiones.

    
respondido por el Marty Fried 10.09.2012 - 16:26

Lea otras preguntas en las etiquetas