Impossibile cambiare la destinazione del collegamento simbolico

20

Voglio cambiare la destinazione di un collegamento simbolico esistente, senza rimuovere il link o la vecchia destinazione.

Ho precedentemente creato un collegamento simbolico a una directory come segue:

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

Ora voglio cambiarlo, per collegarmi all'altra directory:

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

Ma non funziona senza errori:

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

Qualsiasi aiuto?

    
posta Seyed Mohammad 10.09.2012 - 18:11

1 risposta

29

Per creare un collegamento simbolico a una directory , utilizza l'opzione 'n':

ln -sfn DESTINATION_DIRECTORY LINK_NAME
  • DESTINATION_DIRECTORY è il nome della destinazione del collegamento;
  • LINK_NAME è il nome del link.
  • L'opzione f significa sostituire il link esistente (cioè eliminarlo per primo).

L'opzione n è un po 'complicata. Credo che il tuo comando possa aver creato un link a jdk1.7.0_07 all'interno della directory jdk1.7.0_04 , tramite il link oracle-jdk-7 invece di sostituire il link. Se è così, dovresti eliminare il link per evitare confusione.

    
risposta data Marty Fried 10.09.2012 - 18:26

Leggi altre domande sui tag