¿Cómo puedo eliminar un enlace simbólico?


322

Creé un enlace simbólico usando mklink. Ahora necesito cambiarlo, pero no puedo encontrar la forma de eliminarlo para poder recrearlo correctamente.

Respuestas:


557

Ten mucho cuidado.

Si tiene un enlace simbólico que es un directorio (hecho con mklink /d), el uso deleliminará todos los archivos en el directorio de destino (el directorio al que apunta el enlace), en lugar de solo el enlace.

SOLUCIÓN: rmdir por otro lado, solo eliminará el enlace del directorio, no lo que señala el enlace.


103
Habiendo hecho esto accidentalmente (eliminado el contenido completo de la carpeta de destino), este es un consejo importante.
Simon Gillbee

44
Esta respuesta no es del todo precisa. Delelimina archivos, no carpetas. Por lo tanto, no usaría delpara eliminar el enlace.
AMissico

12
Pero no lo use rmdiren PowerShell. Envuélvelo cmdprimero. Vea mi respuesta a continuación ...
northben

44
¿Qué tal si lo elimino a través del explorador de Windows?
Cheung

8
Ahí vuelven los empleados de Microsoft, solo tratando de arruinar mi vida, mi carrera y el sistema operativo Windows.
ThorSummoner

62

Para eliminar los enlaces simbólicos del directorio creados con mklink /dél, es seguro simplemente eliminar el enlace simbólico en el explorador.


27
+1 para decirle a la gente que es seguro eliminar el enlace simbólico a través del Explorador de Windows.
AMissico

3
Es correcto. Lo hago todo el tiempo. Solo lo probé de nuevo ahora mismo.
ddelrio1986

2
Esto también funcionó para mí. Eliminé el enlace, no la carpeta de origen a la que estaba vinculado. Tal vez esa sea la trampa.
R Hughes

3
Es seguro simplemente eliminarlo con Rightclick -> Eliminar. Esto NO elimina la carpeta vinculada.
Hexo

mklink / d No funcionó para mí en Windows 7 .. Aunque podría haber estado usando una versión anterior
abelito

47

Para un enlace simbólico a un archivo, use del. Para un enlace simbólico a un directorio hecho con mklink /d, use rmdir.


55
Advertencia: "del" eliminará el archivo y no solo el enlace.
WoodenKitty

66
La advertencia de @Tristan no es correcta, esta respuesta es precisa. Probado en Windows 7.
jiggunjer

1
En Windows 7 SP1 (64 bits), un enlace simbólico que apunta a un archivo (por ejemplo, creado con MKLINK) o a un directorio (MKLINK / D) se puede eliminar en el Explorador de Windows, utilizando la opción 'eliminar' de la GUI de Windows normal , sin eliminar el objetivo. Incluso una JUNCIÓN (por ejemplo, creada con el comando MKLINK / J), si se elimina en el Explorador, no eliminará el directorio de destino ni su contenido. Si no está vacío, el directorio de destino ni siquiera se puede eliminar con el comando DEL junction en el símbolo del sistema. Probado hoy.
Ed999

En Windows Server 2012, esto eliminó el contenido del directorio al que apuntaba mi enlace simbólico ...
C Bauer

¡Debes advertir a la gente que no se rmdirconecte a Powershell!
NH.

28

En Powershell, ¡no lo uses rmdir! Usar en su cmd /c rmdir .\Targetlugar. Probé esto yo mismo y lo confirmó aquí: http://kristofmattei.be/2012/12/15/powershell-remove-item-and-symbolic-links/


Ese blog confunde el significado de "Destino", que es el directorio real al que apunta el enlace, y que la gente generalmente desea evitar eliminar al eliminar el enlace.
kreemoweet

2
rmdires un comando interno de cmd.exe , por lo tanto, obviamente, para llamarlo desde otros shells que necesitará cmd /co cmd /k. rmdiren PowerShell es solo un alias paraRemove-Item
phuclv

24

Hay otra solución probada por mí y segura de usar. simplemente agregue a la carpeta real _ (ejemplo: foo convertido en foo_) luego simplemente elimine su enlace de symbolik, luego elimine _ de su carpeta verdadera.


2
Sí, esto es 100% solución más segura después de saber que PowerShell no da como ** t sobre rmdir
test30

Esta es una precaución inteligente. +1
Hanna

Advertencia: No creo que esto PODRÍA no funcionar en Win10 ya que está solucionando accesos directos al cambiar el nombre. (Al menos Atajos clásicos) Sin embargo, no probado.
Hexo

Hice esto por si acaso. Después de cambiar el nombre de la carpeta de destino, el enlace del enlace de símbolo falló cuando intenté acceder a ella, por lo que pude eliminarlo sin preocuparme.
Andrew

21

mklink no se puede usar para eliminar enlaces simbólicos. Para eliminar un enlace simbólico, simplemente elimínelos como si estuviera eliminando un archivo normal. Por ejemplo, para eliminar el enlace simbólico foo creado anteriormente, ingrese el siguiente comando:

Si el enlace es un enlace duro a un directorio:

C:\test>rmdir foo

o bien, SI el enlace apunta a un archivo (en lugar de un directorio)

C:\test>del foo

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


2
Solo asegúrate de no eliminarlo con del /So Explorer.
Hola71

1
Vea la respuesta de eddyq a continuación porque usar del para un enlace hecho a un directorio no funcionará y en su lugar intentará eliminar el contenido de la carpeta.
jpierson

2
Los enlaces a directorios no existen. Creo que querías decir enlace simbólico.
Brilliand

0

En mi caso (Windows 10), después de crear el enlace simbólico usando

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

y eliminar mediante la eliminación mediante el explorador de archivos o la tecla de eliminación del teclado también elimina el directorio original .

Lo que debe hacer es eliminar el enlace a través del símbolo del sistema.

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

Para obtener detalles sobre el comando rd: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rd


0

La forma más simple es mover la carpeta (a la que apunta el enlace simbólico) a otro lugar (a la carpeta principal) y luego eliminar el enlace simbólico. ¡Ningún archivo será dañado!


0

He instalado esta extensión de Shell de enlace . Con esto, tienes 2 métodos.

MÉTODO 1

Créelo usando el menú contextual como se muestra y elimínelo mediante el explorador de archivos.

Pruebe con una carpeta C:\Windows\Logscomo se muestra o similar. Solo estoy creando un directorio de todas las ubicaciones posibles de archivos temporales para eliminar y quería una carpeta central donde pudiera monitorear su tamaño a través de enlaces simbólicos.

Tenga en cuenta: la pantalla en blanco es solo el UAC .

eliminar del método del explorador

MÉTODO 2

La forma más segura de documentar aquí AFAIK .

En el enlace simbólico creado ( en los pasos que se muestran arriba ), haga clic derecho sobre él esta vez y haga clic en propiedades y luego vaya a la Link Propertiespestaña.

Nota: Esta extensión de shell agregó esta pestaña.

Antes de continuar, se puede encontrar mucha más información aquí , también, en la página de inicio están las versiones x64 y 32bit .

Entonces, para continuar, aquí puede agregar cualquier cosa al campo de destino siempre que sea diferente al objetivo original.


  1. Aquí hay un antes con el objetivo como C:\Windows\Logs objetivo antes

  2. Aquí hay un después con el objetivo como C:\Windows\Logs_, observe el extra _al final.

    objetivo después

  3. prensa OK

  4. Puede verificar esto nuevamente siguiendo los mismos 1-3 pasos anteriores para asegurarse de que se haya atascado, esta vez recibirá un mensaje de error cuando haga clic en la Link Propertiespestaña para que el enlace se rompa.

  5. Ahora es seguro (r) eliminar el enlace simbólico que el método 1 en mi humilde opinión.


¡Pero! Ambos métodos funcionan aquí, por lo que depende completamente de la elección del usuario. Me gusta el método de propiedades con el que me encontré felizmente, por lo que está 100% seguro de que el enlace se rompe mediante el paso 4 anterior.

Aquí hay un gif de mí creando un enlace simbólico con el botón derecho del mouse arrastrando una carpeta a otra y eligiendo la opción para crear un enlace simbólico en el submenú.

Para eliminar, solo siga los pasos 1 a 5 anteriores del método 2 o siga el método 1.

Cómo crear y eliminar un enlace simbólico utilizando el método de propiedades

Tenga en cuenta: la pantalla en blanco es solo el UAC .

gif sobre cómo crear y eliminar enlaces de sincronización utilizando el método de propiedades

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.