Comment puis-je supprimer un lien symbolique?

322

J'ai créé un lien symbolique avec mklink. Maintenant, je dois le changer, mais je ne sais pas comment le supprimer pour pouvoir le recréer correctement.

Ben V
la source

Réponses:

557

Soyez très prudent.

Si vous avez un lien symbolique qui est un répertoire (créé avec mklink /d), utilisez delpour supprimer tous les fichiers du répertoire cible (le répertoire vers lequel le lien pointe), plutôt que simplement le lien.

SOLUTION: rmdir d'autre part, ne supprimera que le lien de répertoire, pas ce sur quoi le lien pointe.

Eddyq
la source
103
Après avoir accidentellement fait cela (supprimé le contenu complet du dossier cible), ceci est un conseil important.
Simon Gillbee
4
Cette réponse n'est pas tout à fait exacte. Delsupprime les fichiers, pas les dossiers. Par conséquent, vous ne voudriez pas delsupprimer le lien.
AMissico
12
Mais n'utilisez pas rmdirdans PowerShell. Enveloppez-le en cmdpremier. Voir ma réponse ci-dessous ...
northben
4
Que diriez-vous si je le supprime par l'explorateur Windows ????
Cheung
8
Là encore, Microsoft Employees s’efforce de ruiner ma vie, ma carrière et le système d’exploitation Windows.
ThorSummoner
62

Pour supprimer des liens symboliques d'annuaire créés avec, mklink /dil est prudent de simplement supprimer le lien symbolique dans l'explorateur.

ddelrio1986
la source
27
+1 pour dire aux gens qu'il est sauvegardé de supprimer le lien symbolique via l'Explorateur Windows.
AMissico
3
C'est correct. Je le fais tout le temps. Juste testé à nouveau maintenant.
ddelrio1986
2
Cela a juste fonctionné pour moi aussi. J'ai supprimé le lien pas le dossier source qui était lié. peut-être que la prise.
R Hughes
3
Il est prudent de simplement le supprimer avec Rightclick -> Supprimer. Cela ne supprime PAS le dossier lié.
Hexo
mklink / d n'a pas fonctionné pour moi sur Windows 7 .. J'ai peut-être utilisé une ancienne version
abelito
47

Pour un lien symbolique vers un fichier, utilisez del. Pour un lien symbolique vers un répertoire créé avec mklink /d, utilisez rmdir.

George V. Reilly
la source
5
Attention: "del" supprimera le fichier et pas seulement le lien.
WoodenKitty
6
L'avertissement de @Tristan n'est pas correct, cette réponse est exacte. Testé sous Windows 7.
jiggunjer
1
Sous Windows 7 SP1 (64 bits), un lien symbolique pointant sur un fichier (créé avec MKLINK, par exemple) ou sur un répertoire (MKLINK / D) peut être supprimé dans l'explorateur Windows, à l'aide de l'option de suppression classique de l'interface graphique Windows , sans supprimer la cible. Même une JUNCTION (créée par exemple à l'aide de la commande MKLINK / J), si elle est supprimée dans l'explorateur, 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 junction à l'invite de commande. Testé aujourd'hui.
Ed999
Sur Windows Server 2012, cela supprimait le contenu du répertoire vers lequel mon lien symbolique était dirigé ...
C Bauer
Vous devriez avertir les gens de ne pas les rmdirliens de Powershell!
NH.
28

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

Northben
la source
Ce blog confond le sens de "cible", qui correspond au répertoire vers lequel le lien pointe, et que les utilisateurs souhaitent généralement éviter de supprimer tout en supprimant le lien.
kreemoweet
2
rmdirest une commande interne de cmd.exe , donc évidemment de l’appeler à partir d’autres shells dont vous aurez besoin cmd /cou cmd /k. rmdirdans PowerShell est juste un alias deRemove-Item
phuclv
24

Il existe une autre solution testée par moi et sûre à utiliser. ajoutez simplement au dossier réel _ (exemple: foo devient foo_), supprimez simplement votre lien symbolik, puis supprimez _ de votre vrai dossier.

vcorp
la source
2
Ouais, c'est la solution la plus sûre à 100% après que vous sachiez que powershell ne donne pas comme ** t à propos de rmdir
test30
C'est une précaution intelligente. +1
Hanna
Avertissement: Je ne pense pas que cela pourrait ne pas fonctionner sur Win10 car il corrige les raccourcis lors du changement de nom. (Au moins les raccourcis classiques) Non testé cependant.
Hexo
Je l'ai fait juste au cas où. Après avoir renommé le dossier cible, le lien symbolink a échoué lorsque j'ai essayé d'y accéder. Je pouvais donc le supprimer sans m'inquiéter.
Andrew
21

mklink ne peut pas être utilisé pour supprimer des liens symboliques. Pour supprimer un lien symbolique, supprimez-le simplement comme si vous supprimiez un fichier normal. Par exemple, pour supprimer le lien symbolique foo créé ci-dessus, entrez la commande suivante:

Si le lien est un lien physique vers un répertoire:

C:\test>rmdir foo

ou sinon, SI le lien pointe vers un fichier (par opposition à un répertoire)

C:\test>del foo

Source: http://www.mydigitallife.info/2007/05/22/create-symbolic-links-hard-links-and-directory-junctions-in-vista-with-mklink/

Daisetsu
la source
2
Assurez-vous simplement de ne pas le supprimer avec del /Sou Explorer.
Bonjour71
1
Voir la réponse d'eddyq ci-dessous car utiliser del pour un lien créé avec un répertoire ne fonctionnera pas et tentera plutôt de supprimer le contenu du dossier.
jpierson
2
Les liens physiques aux répertoires n'existent pas. Je pense que vous vouliez dire lien symbolique.
Brilliand
0

Dans mon cas (Windows 10), après avoir créé le lien symbolique à l’aide de

MKLINK /D "C:\Users\username\Dropbox\MyProject" "C:\SourceProject"

La suppression par suppression à l'aide de l'explorateur de fichiers ou de la touche de suppression du clavier supprime également le répertoire d'origine .

Ce que vous devez faire est de supprimer le lien via une invite de commande.

C:\Users\username\Dropbox>rd /s MyProject

Pour plus d'informations sur la commande rd: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rd

tetedp
la source
0

La méthode la plus simple consiste à déplacer le dossier (vers lequel le lien symbolique pointe) vers un autre emplacement (dans le dossier parent), puis à supprimer le lien symbolique. Aucun fichier ne sera blessé!

Netgoblin
la source
0

J'ai installé cette extension Shell Shell . Avec cela, vous avez 2 méthodes.

METHODE 1

Créez-le en utilisant le menu contextuel comme indiqué et en le supprimant via l'explorateur de fichiers.

Testez avec un dossier comme ci- C:\Windows\Logsdessous ou similaire. Je crée juste un répertoire de tous les emplacements possibles des fichiers temporaires à supprimer et je voulais un dossier central où je puisse contrôler leur taille via des liens symboliques.

Remarque: l'écran blanc devient simplement l' UAC .

supprimer de la méthode de l'explorateur

METHODE 2

Le moyen le plus sûr sans papiers ici, autant que je sache .

Sur le lien symbolique créé ( dans les étapes ci-dessus ), cliquez dessus avec le bouton droit de la souris, cliquez sur Propriétés, puis sélectionnez l’ Link Propertiesonglet.

Remarque: cette extension du shell a ajouté cet onglet.

Avant de continuer, vous trouverez de nombreuses autres informations ici , ainsi que les versions x64 et 32 ​​bits de la page d'accueil .

Donc, pour continuer, ici, vous pouvez ajouter n’importe quoi dans le champ cible à condition que ce soit différent de la cible originale.


  1. Voici un avant avec la cible C:\Windows\Logs cible avant

  2. Voici un après avec la cible en tant que C:\Windows\Logs_, remarquez l'extra _à la fin.

    cible après

  3. presse OK

  4. Vous pouvez le vérifier à nouveau en allant sur les mêmes 1-3 étapes ci - dessus pour faire en sorte que a collé, cette fois , vous obtiendrez un message d'erreur lorsque vous cliquez sur l' Link Propertiesonglet de sorte que le lien est maintenant rompu.

  5. Il est maintenant sûr (r) de supprimer le lien symbolique de la méthode 1 à mon humble avis.


Mais! Les deux méthodes fonctionnent ici, donc c'est au choix de l'utilisateur. J'aime la méthode des propriétés sur laquelle je suis heureusement tombé, alors vous êtes sûr à 100% que le lien est rompu à l'aide de l' étape 4 ci-dessus.

Voici un exemple de moi qui crée un lien symbolique en faisant glisser le dossier de la souris avec le bouton droit de la souris et en choisissant l'option permettant de créer un lien symbolique dans le sous-menu.

Pour supprimer, suivez simplement les étapes 1 à 5 ci-dessus de la méthode 2 ou suivez la méthode 1.

Comment créer et supprimer un lien symbolique à l'aide de la méthode des propriétés

Remarque: l'écran blanc devient simplement l' UAC .

gif sur la création et la suppression de liens de synchronisation à l'aide de la méthode properties

Stephen Sherry
la source