web-dev-qa-db-fra.com

Comment supprimer ou remplacer un lien symbolique déjà créé?

Je travaille sur mon projet en utilisant network simulator2. Je l'ai installé et tout va bien. J'ai tenté de créer un lien symbolique entre cette installation et /usr/bin afin de pouvoir appeler le logiciel en exécutant ns à partir de la ligne de commande. À savoir, j'ai couru:

Sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

qui a généré la sortie suivante:

ln: creating symbolic link '/usr/bin/ns': File exists


Comment puis-je supprimer le lien symbolique déjà créé ou le remplacer par une autre commande?

52
Vinay
Sudo rm -r /usr/bin/ns

Sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
35
Pawełkowy

ln a -f switch qui "force" la création d'un lien symbolique, qu'il existe ou non.

Sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
62
finley

J'ai essayé ln -sf lors du remplacement, mais cela n'a pas fonctionné pour moi, mais le fait d'utiliser ln -sfn directory link_name en tant que root a fonctionné.

28
user712092

Pour ajouter à toutes les réponses ci-dessus, un lien symbolique peut être traité comme un fichier normal dans de nombreux cas (le lien, pas la cible).

rm sur un lien symbolique le supprimera. Si le lien appartient à root, vous aurez besoin de Sudo.

Vous devriez pouvoir rm /usr/bin/ns ou plutôt Sudo rm /usr/bin/ns sans oublier la propriété.

3
Dmitriy Likhten