Je souhaite modifier la destination d'un lien symbolique existant, sans supprimer le lien ou l'ancienne destination.
J'ai précédemment créé un lien symbolique vers un répertoire comme suit:
$ 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/
Maintenant, je veux changer cela, pour créer un lien vers l'autre répertoire:
$ sudo ln --force -s jdk1.7.0_07 oracle-jdk-7
Mais cela ne fonctionne pas sans erreur:
$ 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/
De l'aide ?
command-line
symbolic-link
Seyed Mohammad
la source
la source
sudo ln -s jdk1.7.0_04/ oracle-jdk-7
. Notez la barre oblique après04
.Réponses:
Pour créer un lien symbolique vers un répertoire , utilisez l'option 'n':
DESTINATION_DIRECTORY
est le nom de la cible du lien;LINK_NAME
est le nom du lien.f
option signifie remplacer le lien existant (c'est-à-dire le supprimer d'abord).L'
n
option est un peu compliquée. Je crois que votre commande peut avoir créé un lien vers l'jdk1.7.0_07
intérieur du répertoirejdk1.7.0_04
, via le lienoracle-jdk-7
plutôt que de remplacer le lien. Si c'est le cas, vous devez supprimer le lien pour éviter toute confusion.la source
T
, c'estln -sfT TARGET LINK_NAME