Hard/Soft Links y Directory Junctions en Windows | Mover un programa sin reinstalarlo!
Hola a todos! Perdonad mi larga ausencia, pero como siempre os digo, lo de ser estudiante es un tostón!
Hoy os voy a enseñar un poco lo que son Hard Links, Soft Links, y Junctions en Windows, cosas MUY útiles pero que no se utilizan demasiado. Si tienes un SSD, presta atención! Lo que os enseño aquí os permite mover los archivos de un programa a otro disco duro con más espacio y “engañar” a Windows para que funcione perfectamente, sin reinstalar ni tocar el registro. Allá vamos!
Lo primero es encontrar un programa que quieres mover de un sitio a otro. En mi caso, voy a mover el Visual Studio (que no me dejaba instalarlo en otro lugar, ji ji ji!)
1) Abrimos como siempre un CMD elevado (Click derecho>Administrador)
2) En mi caso, como lo que quiero es hacer que el Windows piense que una carpeta que está en I:\ está en C:\, así el programa funciona perfectamente (nada de moverlo y punto!), voy a hacer un Directory Junction. Un Directory Junction es un tipo de Hard Link, que hace al SO pensar que la carpeta está en ese disco duro (un poco como un Forwarding con Masking, para los frikis del diseño web B) ). Los Soft Links son básicamente accesos directos, es decir, si tu hacer click en un soft link, se va a mostrar la ruta en donde están los archivos de verdad, mientras que en un hard link no.
OJO: La carpeta de origen NO DEBE EXISTIR. Se creará sola! La de destino si puede ya existir!
Copiamos el contenido de la carpeta original a otra en un lugar diferente, y borramos la de origen, acordándonos del nombre para después volver a llamarla así al crear el link.
Bien, para esto usaremos mklink, os dejo aquí el código:
mklink /J RutaDeOrigen RutaDeDestino
Y ya está! Si queréis crear cualquier otro tipo de link, probad los diferentes parámetros de mklink. Para borrar un link, basta con cargarte la carpeta que redirecciona, ojo de no cargarte la carpeta que físicamente contiene los archivos!
También tened en cuenta que algún que otro programa puede tener problemas con un Junction, pero no es habitual.
Suerte y hasta la próxima!
-Julian