sábado, junio 28, 2008
|
Aquí les dejo con un super-poderoso truco para Windows (2000, XP y posiblemente Vista) que permite que crees enlaces simbólicos en NTFS similar a como es posible hacerlo en UNIX, Linux y OS X. Si no sabes lo que es esto continúa leyendo que te sorprenderá...
Primero, para el que no sepa, un Enlace Simbólico es (en este caso) un directorio/carperta que en realidad "apunta" a otro directorio/carpeta. Noten que esto NO es lo mismo que un Acceso Directo ("Shortcut"). A diferencia de un Acceso Directo que te permite hacer clic con tu ratón para saltar a otro lugar en el disco duro, un Enlace Simbólico le hace creer no solo a tu ratón, sino que a cualquier otro programa instalado en tu PC, que una localización en el disco duro es en realidad otra. La mejor manera de entender lo que es esto, y lo poderoso que es, es con un ejemplo práctico... Digamos que tienes un programa que cada vez que cambias algo, debes replicar un directorio completo, y solo modificar unos cuantos archivos. Es decir, digamos que inicialmente tenemos esta estructura:
Ahora digamos que tienes un nuevo programa que se llama MiPrograma2.exe, por lo que copias todos los archivos a un nuevo directorio, y substituyes solo el archivo MiPrograma1.exe por MiPrograma2.exe. En otras palabras, ahora tenemos esto:
Y digamos que dos días después, tienes un nuevo programa, MiPrograma3.exe. Ahora en tu disco duro tienes esto:
Como podrás imaginarte, por cada programa lo que haces es que copias el directorio c:\foo\ completo (incluyendo los subdirectorios "A", "B" y "C"), y reemplazas MiPrograma1.exe por el nuevo programa, y ya te imaginas el gran problema de esto: Mientras mas copias hagas, mas espacio ocupa todo esto. El problema fundamental sin embargo es el hecho de que estamos copiando las carpetas "A", "B" y "C" que están dentro de c:\foo\ una y otra vez, aun ellas no cambien, y si esas carpetas ocupan mucho espacio, esto rápidamente puede convertirse en un problema de espacio en disco. En el mundo UNIX, Linux y OS X, existe una solución que tiene casi 40 años que fue desarrollada, y es sencillamente algo llamado un Enlace Simbólico (comando "ln" en el shell), que lo que te permite hacer en este caso es que nunca copias las carpetas A/B/C, sino que las dejas en donde están, y en el nuevo lugar desde donde se les desea acceder simplemente creas enlace simbólicos que "apuntan" a las carpetas originales. Es decir, que lo que tendríamos ahora sería algo mas o menos como esto:
En donde "---->" es en realidad un simple enlace simbólico apuntando a otro lugar. Como pueden ver, ahora lo único que ocupa espacio adicional es MiPrograma2.exe y MiPrograma3.exe, pues las carpertas A/B/C no fue necesaria copiarlas. Noten que este es solo un ejemplo, esto tiene innumerables usos, dos ejemplos comunes mas son: 1. Una manera de acortar las rutas, de modo que no tengas que escribir tanto en la linea de comando. 2. Una manera de uno poder sacar una nueva versión de un mismo programa, copiarlo en un lugar nuevo, y mantener todo compatible, ya que se puede crear un Enlace Simbólico desde el viejo lugar al nuevo lugar, para que así los otros programas que esperan una ruta pre-determinada continúen funcionando correctamente (esto resuelve un gran problema en programas viejos en Windows). Otra cosa a notar es que a diferencia de UNIX/Linux/OSX, en Windows solo se pueden crear enlaces simbólicos locales (es decir, dentro de una misma máquina), solo para volúmenes formateados con NTFS, y solo para directorios (en los otros sistemas operativos se pueden crear enlaces simbólicos a archivos también). Así mismo en UNIX/Linux/OSX puedes crear enlaces con propiedades mas avanzadas (enlaces "duros" y "suaves"), pero ese tema va mas allá de lo necesario en este artículo. Entonces, ¿cómo hacemos estos enlaces simbólicos en Windows NTFS? Pues para empezar, Microsoft no los llama con la terminología estándar (razón por la cual es posible que muchas personas que vienen de otros sistemas operativos crean que no existan en Windows), sino que los llama un "Junction" (en Español eso sería algo como una "Juntura", creo), pero vamos a seguir llamándolos enlaces simbólicos que tiene mas sentido... Para crea enlaces simbólicos en Windows NTFS, debes descargar un programa desde Microsoft que te permite hacer esto. El enlace para descargarlo es este. Cuando lo descargues, la primera vez que lo ejecutes (desde la linea de comando) una ventana con una licencia surgirá, debes aceptarla para proseguir con el uso del programa. Nota que lo ideal es que copies el ejecutable en algún lugar de la ruta %PATH% de tu sistema, como en C:\Windows\System32\ o similar. Si quieres ver tu ruta de ejecución en Windows, escribe el comando: echo %PATH% Ahora, para utilizar el comando junction, el comando básico es el siguiente: junction fuente destino En donde destino es la ruta a donde se encuentra la carpeta a donde deseas enviar a los usuarios u otros programas, y fuente es la ruta que te estás inventado (el enlace simbólico). Ejemplo: junction c:\win c:\Windows Ese ejemplo te crea un enlace simbólico en el disco c: que se llama "win" (notarás que este comando te crea una carpeta como cualquier otra que se llama c:\win\) y que apunta en realidad a c:\windows\. Después si ejecutas el comando: cd c:\win Notarás que aunque vez los archivos normalmente localizados en c:\Windows, que la linea de comando te dice que aun estás en c:\win. Similarmente, si entras visualmente con el Windows Explorer en c:\win, este te mostrará todos los archivos de c:\Windows, pero seguirá diciendo que estás en c:\win (a diferencia de un Acceso Directo que te cambia de lugar). Advertencia Importante: Nota que si entras a c:\win\ y borras todos los archivos que ves ahí, que en realidad lo que estarás haciendo es borrando todos tus archivos de c\Windows\, por lo que ten muchísimo cuidado con esta situación. Si lo que quieres es borrar el enlace simbólico, lo que debes hacer entonces es ejecutar este comando: junction -d c:\win Eso es todo, ¡¡¡espero que esto les sea tan útil a ustedes como a mi!!! Descarga Junction v1.5 desde Microsoft en este enlace autor: josé elías |
14 comentarios |
Linux , Pregunta a eliax , Software , Windows / Microsoft |
Comentarios
Añadir Comentario |
en camino a la singularidad...
©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax
Seguir a @eliax
Muy buena herramienta. Me ha sacado mucho de apuros. El ejemplo lo podria simplificar diciendo que si me quedo sin espacio en mi dicos duro c: puedo mover mis programas a un dicos externo, digamos c:\Program Files -> x:\Program Files, y ya.. :) Buena suerte...