X

Cómo crear simlinks y hardlinks en Windows 10

Cuando trabajas con Linux, muchas veces quieres tener el mismo contenido de una carpeta o archivo en dos sitios sin duplicarlo. En Windows no ha sido nunca fácil, pero ahora ya tienes cómo crear hardlinks y simlinks en Windows 10.

Si como yo eres de los aventureros que usan Windows para desarrollo y programación, seguro que más de una vez te habrás encontrado con la típica mirada por encima del hombro.

Llevo bastantes años con esto, y cada vez están más a la par, sobretodo con windows subsystem linux, que te permite tener linux integrado en el sistema. Aun así, hay cosas que puedes echar de menos.

Cómo crear links simbólicos en Windows 10

Por otro lado, la parte buena es que paso a paso se van solucionando las cosillas que faltan en este sistema, y aunque esté un poco escondido, desde hace un tiempo puedes crear estos dos tipos de enlaces en Windows.

Antes de nada comentarte que si creas los enlaces con la máquina integrada de linux, solo esta será capaz de interpretarlos como tales, aunque Windows vea esos enlaces como archivos.

Si estás ejecutando un servidor web o similar en WSL, entonces sí que debes usar los comandos en linux. Pero lo que ahora nos interesa, es tenerlo de forma nativa en Windows, para por ejemplo no duplicar carpetas de copias de seguridad, fotos y demás, y tener diferentes rutas para cada programa.

Creando un link simbólico en Windows con la consola de comandos

Cuando creas un link simbólico, es algo como una especie de enlace. El contenido queda en la carpeta destino, pero aun así puedes acceder con otra ruta donde hayas creado el enlace.

Por ejemplo, si creas un enlace desde

C:\algo => C:\Usuarios\tuusuario\carpeta

Cuando accedas a C:\algo, verás el contenido de \carpeta, pero la ruta será la del link simbólico.

Abre la consola de comandos como administrador. Tecla windows, cmd.

Ahora vete por ejemplo a c: y teniendo en cuenta la carpeta destino que quieres crear, por ejemplo c:/Usuarios/tuuser/destino (que tiene que existir), y que quieras llamar la carpeta enlace origen entonces deberías ejecutar algo así:

Escribe
c:  <- intro

y tienes una de estas opciones

mklink origen c:\Usuarios\tuuser\destino
o
mklink /D origen c:\Usuarios\tuuser\destino
o
mklink /H origen c:\Usuarios\tuuser\destino
o
mklink /J origen c:\Usuarios\tuuser\destino

A ver, ahora paso a explicarlo, cada uno crea un enlace de forma distinta:

  • Sin opción: apunta un orígen hacia un archivo destino.
  • /D: apunta el orígen hacia una carpeta destino.
  • /H: apunta con hardlink el orígen hacia un archivo destino.
  • /J: apunta con hardlink el orígen hacia una carpeta destino.

¿Qué diferencia hay entre softlink y hardlink?

Antes de explicarlo, tengo que ponerte algo de carne en el asador, es poca cosa.

Los sistemas de archivos no guardan el contenido directamente en lo que vemos como archivos. Lo que hacen, es mantener una especie de base de datos interna, donde se guarda toda la información.

Cuando tu creas un archivo, y le pones un contenido, lo que haces realmente es crear un archivo (identificador), y asignarle en la base de datos un contenido (valor). Este valor o inode, es donde realmente están los datos, que se quedan huérfanos cuando eliminas los archivos (por eso se pueden recuperar datos borrados).

Un softlink apunta directamente al archivo o identificador que ves en las ventanas, por ejemplo a la carpeta o archivo de texto. Esto significa que si creas un enlace simbólico a una carpeta, y luego cambias el nombre de esa carpeta, el enlace dejará de funcionar porque no encontrará el destino.

Un hardlink lo que hace es apuntar la carpeta o archivo directamente al valor o nodo de la base de datos. Al hacer esto, aunque tú elimines o cambies el archivo o carpeta al que habías enlazado, el enlace seguirá funcionando, ya que apunta directo a los datos.

Es como tener dos puertas que te llevan al mismo sitio, pero en el caso del hardlink son independientes la una de la otra. De esta forma, sería como tener dos veces los archivos pero ocupando solo una vez el espacio, y sin preocuparte de que uno de los dos enlaces desaparezca mientras el otro se mantenga.

Si te fijas, al crear el hardlink no aparece una flecha como la de los accesos directos, porque realmente apunta al contenido del archivo, no al identificador.

Si aún te queda alguna duda, o estás teniendo problemas para crear tus enlaces déjame un comentario y te echo un cable.

¿Sueles usar Windows para desarrollo? ¿Crees que le falta algo? Comenta y comparte.

VicHaunter:
    Categorías: Ayuda
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.