Comment supprimer un lien symbolique

139

J'essayais de créer ce lien symbolique:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

mais j'ai accidentellement tapé:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Alors maintenant, je veux le corriger mais il est dit que le lien symbolique existe déjà.

James
la source

Réponses:

165

Vous pouvez utiliser rmpour supprimer le lien symbolique.

Exemple:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Ensuite ...

 rm tmo2

va supprimer le lien symbolique.

Rinzwind
la source
1
permission refusée. C’est ce que j’ai tapé en premier: sudo ln-s / usr / share / php, yad, dans / var / www / phpmyadmin
James le
6
autorisation refusée: Vous savez que vous avez besoin de sudo si vous souhaitez l'utiliser dans une situation où vous n'êtes pas propriétaire du fichier? Cela vaut pour «rm» aussi.
Rinzwind
2
je l'ai fait rm / usr / bin / python et enlevé mon python d'ubuntu: S
2
@RaheelKhan non vous avez -not- Vous avez supprimé un SYMLINK. Python repose sur ce lien symbolique cependant. Si vous recréez ce lien symbolique, python sera de retour.
Rinzwind
1
J'essaie cette commande mais il semble que mon fichier a été supprimé, je ne veux pas le supprimer
saeed masoomi 11/12
24

Vous pouvez aussi essayer de unlinkcommander.
unlinkest une commande d'alias de rm. donc rm <symlink>fonctionnera commeunlink <symlink>

Voici le lien de référence .

hakunami
la source
9
unlinkn'a rien à voir avec les liens symboliques en particulier. Voir serverfault.com/a/38817/64085
Matthew Read
@kushvarma mais ça marche. avez-vous essayé ça?
hakunami
1
la réponse peut être correcte, mais va confondre les débutants
jeudi
" unlinkest un alias command of rm" [citation nécessaire]
mwfearnley le
12

Supposons que vous essayiez de faire:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

mais a fait accidentellement:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Pour le corriger, naviguez simplement dans le dossier contenant le lien et dissociez-le.

cd /var/www/phpmyadmin/  
~:# unlink somethingelse
Métaux Marata
la source
8

Vous utiliserez ce qui suit pour supprimer le lien symbolique

sudo rm path/to/the/link

Explication

  • rmest la commande du terminal pour supprimer un fichier. Voir rm --helppour plus d'options que cela peut prendre.
  • sudoest utilisé parce que le lien symbolique a été créé avec sudo. Le fichier appartient donc à root et votre utilisateur normal ne pourra pas l'éditer / le supprimer car il a moins de "puissance" que root.
  • path/to/the/linksera /usr/share/php,yad,inbasé sur votre commentaire.

Supplémentaire

Voir aussi ce post et mon commentaire à la première réponse pour accéder à phpmyadmin lors de l'obtention d'une erreur introuvable après l'installation.

chesedo
la source
Votre commentaire n'est pas générique. Veuillez toujours utiliser la commande générique pour montrer comment supprimer le lien symbolique
kushvarma
générique signifie, il devrait être valable pour tout, comme votre commande est spécifique à / usr / share / php, yad, dans, mais il devrait ressembler à rm <symlink>
kushvarma
@ Kushvarma, merci. J'ai rendu la réponse plus générique - elle était à l'origine spécifique parce que le PO semblait avoir un problème pour supprimer le fichier
chesedo
1

Désolé de poster necro mais j'ai trouvé cette question quand je cherchais une réponse à cette question.

Une petite mise en garde que j'ai trouvée était que j'essayais de courir rmet unlinksur un lien symbolique et que j'avais une erreur qui disait que c'était un répertoire.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Pour supprimer le lien symbolique, j’ai utilisé, unlink folder_namemais il a échoué s’il s’agissait d’un message /de fin, par exemple, unlink folder_name/car il pense que c’est un répertoire, pas le fichier que vous souhaitez supprimer.

Randomhero
la source
0

J'ai stubled ici parce que je devais supprimer a dpkg-divertet le nouveau package ne sera pas installé avant son retrait.

Donc, si vous avez fait quelque chose comme ça:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Vous devez l'enlever avec quelque chose comme ça:

sudo dpkg-divert --remove /usr/bin/gcc.real
Sudipta Basak
la source