387 votes

Comment supprimer un lien symbolique ?

J'ai créé un lien symbolique en utilisant mklink . Je dois maintenant le modifier, mais je n'arrive pas à trouver comment le supprimer pour le recréer correctement.

662voto

eddyq Points 6604

Soyez très prudent.

Si vous avez un lien symbolique qui est un répertoire (fait avec mklink /d ) puis en utilisant del supprimera tous les fichiers du répertoire cible (le répertoire vers lequel pointe le lien), et non pas seulement le lien.

SOLUTION : rmdir d'autre part, ne supprimera que le lien du répertoire, et non ce vers quoi le lien pointe.

139 votes

Comme je viens de le faire accidentellement (en supprimant tout le contenu du dossier cible), c'est un conseil important.

7 votes

Cette réponse n'est pas tout à fait exacte. Del supprime les fichiers, pas les dossiers. Par conséquent, vous ne devez pas utiliser del pour supprimer le lien.

16 votes

Mais n'utilisez pas rmdir dans PowerShell. Enveloppez-le dans cmd premier. Voir ma réponse ci-dessous...

106voto

ddelrio1986 Points 1149

Pour supprimer les liens symboliques de répertoire créés avec mklink /d il est sûr de supprimer le lien symbolique dans l'explorateur Windows.

4 votes

C'est correct. Je le fais tout le temps. Je viens juste de le tester à nouveau.

3 votes

J'ai supprimé le lien, mais pas le dossier source vers lequel le lien était établi.

4 votes

Il est sûr de le supprimer avec un clic droit -> Supprimer. Cela ne supprime PAS le dossier lié.

52voto

benteight Points 345

Pour un lien symbolique vers un fichier, utilisez del . Pour un lien symbolique vers un répertoire créé à l'aide de la commande mklink /d を使用します。 rmdir .

6 votes

Avertissement : "del" supprimera le fichier et pas seulement le lien.

8 votes

L'avertissement de @Tristan n'est pas correct, cette réponse est exacte. Testé sur Windows 7.

1 votes

Dans Windows 7 SP1 (64 bits), un lien symbolique qui pointe vers un fichier (par exemple, créé à l'aide de MKLINK) ou vers un répertoire (MKLINK /D) peut être supprimé dans l'Explorateur Windows, à l'aide de l'option "supprimer" de l'interface graphique ordinaire de Windows, sans en supprimant la cible. Même une JUNCTION (par exemple, créé à l'aide de la commande MKLINK /J), s'il est supprimé dans l'Explorateur, il ne supprimera pas le répertoire cible ni son contenu. S'il n'est pas vide, le répertoire cible ne peut même pas être supprimé à l'aide de la commande DEL. jonction à l'invite de commande. Testé aujourd'hui.

31voto

northben Points 1119

Dans Powershell, n'utilisez pas rmdir ! Utilisez cmd /c rmdir .\Target à la place. Je l'ai testé moi-même et confirmé ici : http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/

0 votes

Ce blog confond la signification de "Target", qui est le répertoire réel vers lequel le lien pointe, et que les gens souhaitent généralement éviter d'effacer en supprimant le lien.

4 votes

rmdir est une commande interne de cmd.exe donc, évidemment, pour l'appeler à partir d'autres shells, vous aurez besoin de cmd /c o cmd /k . rmdir dans PowerShell est juste un alias de Remove-Item

0 votes

Pour ajouter à la confusion, del est également un alias de Remove-Item dans PowerShell. Ainsi, alors que del dans cmd supprime récursivement des fichiers, del dans PowerShell ne supprime que le lien.

28voto

vcorp Points 371

Il existe une autre solution que j'ai testée et que je peux utiliser en toute sécurité. il suffit d'ajouter au vrai dossier _ (exemple : foo devient foo_) ensuite il suffit de supprimer votre lien symbolik, puis de supprimer _ de votre vrai dossier.

3 votes

Oui, c'est la solution la plus sûre à 100 %, une fois que l'on sait que powershell n'a rien à faire de rmdir.

0 votes

C'est une précaution intelligente. +1

0 votes

Avertissement : Je pense que cela POURRAIT ne pas fonctionner sur Win10 puisqu'il fixe les raccourcis lors du renommage. (Au moins les raccourcis classiques) Pas testé cependant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X