Accesos Directos Super Poderosos y Flexibles

Estuve pensando un rato cómo titular esta nota, y la verdad que no sé si fue una buena opción la que he escogido, pero si ponía algo relativo a “Hard Links”, “Soft Links” y “Symbolic Links” no iba a resultar muy tentador leerla

Aunque estos conceptos son manejados habitualmente en otros sistemas operativos, en ambiente Windows son casi desconocidos

Me parece que el tema es interesante no sólo porque me había propuesto hacer una nota sobre el tema, sino que veo rutinariamente preguntas sobre cómo sincronizar, cambiar de ubicación, etc. de archivos y carpetas y estos conceptos pueden ser una solución

¿Le intersan las posibilidades de MKLIN.EXE? Siga leyendo entonces :)

MKLINK es un comando que está disponible desde Windows NT 4.0 y que fue ampliando sus posibilidades en cada nueva versión. Permite crear tres tipos de “Enlaces”, los voy a llamar así hasta que podamos definir cada clase, porque se trata de eso llamémoslos “enlaces”, “atajos”, “accesos directos” o como quieran

La diferencia fundamental que desarrollaremos ahora, es que en lugar de ver un “acceso directo a un archivo” veremos como puedo tener algo parecido pero con mucha mayor funcionalidad

Existen tres clases de “enlaces” que se pueden crear con MKLINK.EXE, y cada uno provee diferentes funcionalidades

  1. “Hard Links”
  2. “Soft Links” (o “Directory Junctions” o “Junction Points” o “Reparse Points”)
  3. “Symbolic Links”

 

“Hard Links”

Fue una funcionalidad agregada ya desde Windows NT 4.0 y en muchos aspectos es similar al conocido accedo directo a archivos, pero mucho más poderoso como veremos

Un “Hard Link” de un archivo nos permite acceder al mismo, aunque el mismo esté en otro lugar del volumen

Y en esta última frase ya puse dos limitaciones que tiene:

  • Sólo para archivos. No para carpetas
  • En el mismo volumen. Ni en otro disco, ni en la red

Seguramente se preguntarán “¿qué ventaja tiene entonces?” ya las veremos con unos ejemplos

He creado una estructura de pruebas con tres carpetas, y un archivo, como muestra la figura
En la carpeta “Origen” es donde crearé los enlaces, y en las “Destino” es donde se encuentre realmente el archivo que usaré de pruebas

MKL-01

En un cliente, y ejecutando la línea de comandos (CMD) como administrador, si desean pueden adelantarse y ver la sintaxis del comando MKLINK usando el modificador “/?”

Para crear un “Hard Link” debemos usar el modificador “/H” indicando primero el nombre del “Hard Link” que crearemos y el archivo destino, por lo que en esta demostración utilizaré:

MKLINK /H HL-Archivo1.txt C:\Destino\Archivo1.txt

De esta forma estoy creando “C:\Origen\HL-Archivo1.txt” que en realidad apunta a “C:\Destino\Archivo1.txt

MKL-02

Si abrimos el “enlace” veremos que no sólo podemos ver el archivo, sino además modificarlo directamente

MKL-03

Por supuesto que si abrimos el archivo original, veremos que se trata siempre del mismo archivo, accedido con diferentes nombres

MKL-04

 

¿Qué sucede si el archivo destino fuera movido a otra ubicación? Con un acceso directo normal ya lo sabemos, se pierde el acceso

Pero con un “Hard-Link” no se pierde acceso, se actualiza automáticamente

Muevo el archivo de pruebas a otra carpeta diferente

MKL-05

Y ejecuto el “Hard Link” que habíamos creado anteriormente

MKL-06

Como podemos comprobar, se ha actualizado automáticamente, abriendo el mismo archivo aunque esté en una nueva ubicación

¿Lo podríamos llamar “Acceso Directo Dinámico” :)

MKL-07

Otra posibilidad, aunque no es tan destacable, es que podemos crear diferentes “Hard Links” con diferentes nombres, apuntando a un único archivo

MKL-08

MKL-09

 

¿Y qué sucede si borro el archivo original? Seguramente quedarán los enlaces como no válidos… No, no es así :)

Borro el archivo original

MKL-10

MKL-11

Si abro cualquier de ambos “Hard Links” creado sigo pudiendo abrir el archivo original, y no se ha perdido su contenido

Evidentemente el funcionamiento de los “Hard Links” esta creando entradas en el sistema de archivo, sino iguales muy parecidas, a las que se crean normalmente

MKL-12

 

 

“Soft Links”

A partir de Windows 2000 se agregó una nueva posibilidad al comando como es poder trabajar con carpetas, aunque no archivos, pero funciona además entre diferentes volumenes

Esta opción es la que muestra mayor diversidad de nombres, aunque siempre se trate de los mismos, yo utilicé “Soft Links” pero también se conocen como “Directory Junctions” o “Junction Points” o “Reparse Points”

Para mostrar el funcionamiento creo una nueva carpeta con un nuevo archivo de prueba

MKL-13

Y creo el “Soft Link” utilizando el comando:

MKLINK /J SL-Destino2 E:\Destino2

MKL-14

Vemos que se ha creado el enlace

MKL-15

Y si lo abrimos podemos acceder, aunque si observan en detalle vemos que la barra del camino (“path”) nos miente :)

MKL-16

¿Y qué sucede si cambiamos de ubicación a la carpeta destino?

MKL-17

Esta opción no es dinámica, lamentablemente en ese caso se pierde el acceso

MKL-18

Exactamente igual sucede si borramos la carpeta destino. Esto es diferente a lo que sucedía con los “Hard Links”

MKL-19

MKL-20

MKL-21

Para que lo vean con una utilización real que todos usamos. Las nuevas versiones de sistema operativo han cambiado la ubicación de varias carpetas del perfil de usuario, pero para mantener la compatibilidad, el sistema crea automáticamente estos “Soft Links”

Si quieren ver un ejemplo sencillo, dentro del perfil de los usuarios podemos ver el “Soft Link” llamado  “Documents and Settings” apuntando a las nuevas ubicaciones

MKL-22

Aprovecho para mostrar algo más sobre este “Soft Link”. Todos hemos visto que si tratamos de acceder por el mismo nos da un mensaje de Acceso Denegado

MKL-23

Si son curiosos, vean la parte avanzada de seguridad del mismo y verán una entrada que deniega a Todos poder ver el contenido. Eso es así para evitar su uso ya que podría traer inconsistencias en el sistema

MKL-24

 

“Symbolic Links”

Vamos ahora a la tercera y última opción. Esta es válida sólo desde Windows 2008 y Windows Vista en adelante

Tiene varias ventajas interesantes y más poderosas que las dos anteriores, pues funciona tanto con archivos como con carpetas, en el mismo volumen o con volúmenes diferentes, y agrega la funcionalidad de poder trabajar con carpetas compartidas en la red

Para la demostración he creado en otra máquina una carpeta compartida, como muestra la captura siguiente

MKL-25

Verifico que puedo accederla en la forma normal

MKL-26

Para crear el “Symbolic Link” debo usar MKLINK con el modificador “/D” por lo que el comando que utilizo ahora es:

MKLINK /D SL-Compartida \\DC1\Compartida

MKL-27

Vemos que se ha creado el “enlace” correspondiente

MKL-28

Y si lo abrimos podemos acceder a la carpeta original, aunque igual que el caso anterior, la barra de camino (“path”) nos vuelve a mentir :)

MKL-29

Sólo para mostrarlo aunque supongo que todos se lo habrán imaginado, borrar el enlace no elimina el origen

MKL-30

MKL-31

En este caso no muestro mover la carpeta destino, porque en ese caso se perdería el compartido, y si la recreara en otra ubicación automáticamente se reconectaría

 

Un último detalle más, nuestro conocido comando DIR si lo usamos con el modificador “/AL” nos mostrará tanto los “Soft Links” como “Junction”, como también los “Symbolic Links” como “SYMLINKD”

MKL-32

 

Cada una de las tres opciones vistas tiene algunas ventajas que se pueden aprovechar en diferentes casos. Por ejemplo, que se pueda acceder a los mismos datos desde dos ubicaciones diferentes y aún con nombres diferentes, puede llegar a hacer que no tengamos que configurar una replicación

Una tabla resumen ayuda :)

Hard Link

Soft Link

Symbolic Link

Requerimiento Mismo volumen Mismo o diferente volumen Mismo o diferente volumen, o máquina
Archivos

SI

NO

SI

Carpetas

NO

SI

SI

Compartidos

NO

NO

SI

Destino cambia

Válido

No válido

No válido

Anuncios
Post a comment or leave a trackback: Trackback URL.

Este espacio es para comentarios sobre la nota. No es un sitio de soporte

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: