Enlaces simbólicos (junctions) en Win2K, XP y posteriores
Aún más increíble que el hecho de que esté escribiendo algo para el reverso tenebroso de la fuerza es que en Win2K, si tenemos un sistema de ficheros NTFS, podemos crear enlaces simbólicos a carpetas. Por desgracia, sólo a carpetas, pero algo es algo. Así, a los linuxeros que no podemos vivir sin un ln -s en nuestras vidas nos resulta más sencillo acometer diversos problemas de los que hablaré en un artículo posterior: usos y costumbres de los enlaces simbólicos en Windows.
Bueno, al turrón. En la página de Mark Russinovich y Bryce Cogswell, Sysinternals podemos encontrar, entre toneladas de excelente documentación y otras utilidades a junction, el programa que nos permitirá crear los enlaces simbólicos. Para los impacientes, aquí está el enlace para descargarlo.
Un ejemplo de uso
Que como dice Joel Spolsky, Show, don’t tell. Una vez bajado el zip del junction lo descomprimimos y el ejecutable lo ponemos en c:\windows o en otra carpeta que esté en el PATH.
Vamos a crear un enlace a c:\windows\system32 que se llame sys. Para ello escribimos (desde una consola, Inicio->Ejecutar->cmd.exe):
C:\WINDOWS\system32>junction c:\sys .Junction v1.03 - Win2K junction creator and reparse point viewerCopyright (C) 2000-2002 Mark RussinovichSystems Internals - www.sysinternals.comCreated: c:\sysTargetted at: C:\WINDOWS\system32C:\WINDOWS\system32>cd \C:\>dirEl volumen de la unidad C no tiene etiqueta.El número de serie del volumen es: 0FDB-2CE8Directorio de C:\26/07/2005 19:23 <DIR> Archivos de programa26/07/2005 19:24 <DIR> Documents and Settings... blah, blah, blah ...25/07/2005 17:01 <DIR> Sun27/07/2005 15:40 <JUNCTION> sys... blah, blah, blah ...27/07/2005 15:21 <DIR> WINDOWS25/04/2005 16:08 1.117.393 wrar342es.exe11 archivos 77.591.418 bytes25 dirs 68.416.106.496 bytes libres
He resaltado en negrita el enlace. ¡Funciona! Si ahora entramos en la «carpeta» c:\sys veremos el contenido de c:\windows\system32
Borrando y consultando un junction
Borrar un enlace es muy sencillo. Basta escribir juncion -d <nombre-enlace> y se nos indicará que el enlace ha sido borrado.
Si queremos saber a qué carpeta apunta un junction, escribiremos junction <nombre-enlace> y nos mostrará el destino al que apunta.
No se si es porque los nombres tienen espacios o el Junction es una versión distinta al utilizado en esta nota, en mi caso necesitaba crear un enlace a Program Files (Windows XP lenguaje inglés) llamado Archivos de Programa y no me salía como lo indica la nota, pero logré hacerlo así:
Inicio > Ejecutar >> cmd
C:\>junction «C:\Archivos de Programa» «C:\Program Files»
Esto creó el enlace llamado «Archivos de Programa» dirigido a la carpeta «Program Files»