Symlinks en Windows, paso a paso

The following two tabs change content below.

Nerd Monkey

Me gusta el software. email: nerdmonkey@monkeytips.es

Latest posts by Nerd Monkey (see all)

Los enlaces simbólicos (de aquí en adelante symlinks para abreviar, también conocidos como symbolic links o soft links) son, resumiendo mucho, representantes de un fichero o directorio. Podemos trabajar de manera transparente sobre ellos, como si se tratase del fichero/directorio real pero sin haberlo tocado directamente (para los más entendidos, ambos comparten el mismo inodo). Además, no ocupan espacio adicional y al borrarlos no se eliminan los ficheros/directorios originales.

No hay que confundirlos con los famosos accesos directos (ficheros con extensión .lnk en Windows o con extensión .desktop en Linux), ya que estos si tienen identidad propia aunque apunten hacia otro lugar (no representan de forma transparente al fichero/directorio, sólo nos dirigen hasta él). Quizá te estés preguntando para que sirven los symlinks, o que hacen que no pueda resolver un simple acceso directo. Ahí va un ejemplo:

Caso de uso de los symlinks

Imagina que usas la aplicación de escritorio de Dropbox y quieres sincronizar con la nube un directorio local. Lo habitual es copiar ese directorio a la “Carpeta Dropbox” para que comience a sincronizarse, pero supongamos que es un directorio muy pesado, con muchos ficheros y algunos de ellos bastante grandes. Si copiamos sin más poniendo a sincronizar la copia, tendremos la misma información duplicada ocupando el doble de espacio en disco, por lo que no nos vale. Si por el contrario creamos un acceso directo y lo ponemos en la “Carpeta Dropbox”, sincronizaríamos ese acceso directo y no el directorio que queremos, por lo que resulta inútil y tampoco nos vale.

Y aquí es donde llegan los symlinks al rescate. Si en lugar de hacer una copia o un acceso directo, lo que hacemos es crear un symlink a nuestro directorio y luego lo colocamos en la “Carpeta Dropbox”, conseguimos nuestro objetivo sin necesidad de ocupar el doble de espacio.

Los symlinks suelen usarse en sistemas Unix (como GNU/Linux o MacOS) con el comando ln (junto a multitud de opciones que lo acompañan), pero vamos a ver como trabajar con ellos en Windows.

Para poder hacerlo sólo hay un requisito, usar Windows Vista o Windows Server 2008 (o superiores), ya que el soporte para enlaces simbólicos se introdujo en estas versiones. El comando en cuestión es mklink, con diversas opciones que podemos consultar en la documentación.

Otro detalle a tener en cuenta, es que por algún motivo no se permite la creación de symlinks a los usuarios Administradores por defecto, por lo que la solución más sencilla es identificarse con cualquier otro usuario de Windows que no sea administrador (para más información, consultar este enlace).

Ejemplo práctico

Para ilustrar su uso, veamos un ejemplo práctico sencillo:

  • Creamos una carpeta en nuestro escritorio llamada directorio.
  • Dentro de ella, creamos un nuevo documento de texto, llamado fichero (con extensión .txt), escribimos algo en él y lo guardamos.
    Creando el fichero que se va a enlazar (puedes hacerlo a través de la consola si lo prefieres)

    Creando el fichero que se va a enlazar (puedes hacerlo a través de la consola si lo prefieres)

    A partir de ahora, es imprescindible usar la consola para lanzar los comandos. Para abrirla, basta con pulsar + (o ir a Inicio -> Ejecutar), escribir cmd y pulsar sobre “Aceptar”. Se nos abrirá la consola y ya estaremos en disposición de introducir los siguientes comandos:

  • Primero, nos movemos al directorio que creamos anteriormente: cd C:\Users\<Usuario>\Desktop\directorio. No olvides sustituir por tu nombre de usuario.

    • Si fuera necesario modificar la letra de la unidad porque tu escritorio no está en C:\ (por ejemplo, cambiando de C:\ a D:\), ten en cuenta que has de usar el comando cd con la opción /dcd /d D:\Users\<Usuario>\Desktop\directorio.
  • Ahora, para asegurarnos, introducimos el comando dir (sin parámetros, tal cual) y deberíamos ver un resultado como el siguiente:
    Si has creado el fichero y te encuentras en el directorio que lo contiene, verás algo así

    Si has creado el fichero y te encuentras en el directorio que lo contiene, verás algo así

  • Por último, sólo queda lanzar el comando que nos interesa:

mklink enlace_a_fichero fichero.txt

Esto creará un symlink hacia fichero.txt, que ocupa 0KB y que podemos mover a donde queramos para usarlo.

Finalmente, se lanza el comando para crear el symlink y lo obtenemos

Finalmente, se lanza el comando para crear el symlink y lo obtenemos

  • También podemos crear un symlink de la carpeta directorio, usando los siguientes comandos:
cd C:\Users\<Usuario>\Desktop
mklink /d enlace_a_directorio directorio

El resultado es el mismo, sólo que ahora el symlink representa al directorio completo. El comando mklink también permite la creación de hardlinks y junctions, (otros tipos de enlaces) pero no me ocuparé de eso en esta entrada.

Script propuesto

Si este ejemplo te sabe a poco y quieres seguir avanzando, no te preocupes. A continuación, te propongo un pequeño script en batch que crea symlinks para cada uno de los ficheros presentes en una serie de directorios (definidos por el usuario en el fichero simbolificar.txt, una ruta por línea), y los guarda todos juntos en el directorio symlinks:

mkdir symlinks
for /f %%i in (.\simbolificar.txt) do (
    dir %%i /a:-D /b > temp.txt
    for /f %%j in (temp.txt) do (
        mklink "symlinks\%%j" "%%i\%%j"
    )
)
del temp.txt

Descarga script Simbolificar – Puedes descargar el script para usarlo (se ejecuta simplemente con doble click) y/o modificarlo a tu antojo.

Y por hoy me despido, espero haberte enseñado algo nuevo y de utilidad. Si tienes cualquier duda o sugerencia puedes dejar un comentario o escribir un correo a nerdmonkey@monkeytips.es. Si te ha gustado este post compártelo, y para estar al tanto de las novedades síguenos en las redes sociales. ¡Que vaya bien!

Si te ha gustado, ¡compártelo! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

2 pensamientos en “Symlinks en Windows, paso a paso

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *