¿Cómo se hace un enlace simbólico con una ruta relativa usando mklink?

25

Esta página web implica que es posible hacer enlaces simbólicos con rutas relativas usando mklink.

He intentado todo tipo de formas de hacer enlaces simbólicos relativos, pero siempre termino con una ruta absoluta.

Como se hace

paradroid
fuente
MSDN tiene una forma extraña de explicar esto. Me costó mucho entender cómo hacer un enlace simbólico, ya que no hay ejemplos reales.
iglvzx
La única razón por la que conozco esta "forma extraña" es porque MSDOS usa este método.
surfasb
No entiendo por qué mi pregunta tiene 20,000 visitas ahora, cuando el problema fue causado por un error en TCC / LE. Los enlaces simbólicos se hacen relativos por defecto generalmente.
paradroid

Respuestas:

38

Los enlaces simbólicos son relativos por defecto. Debe escribir explícitamente una letra de unidad para que cualquier parte del enlace sea absoluta.

La sintaxis general para un enlace simbólico es:

mklink link destination

Entonces, para crear un enlace simbólico relativo: linkserá una ruta relativa a su directorio de trabajo , y destinationserá una ruta relativa a link.

Ejemplos:

1. mklink link.txt ..\destination.txt

Esto crea un enlace simbólico link.txtque apunta a destination.txtuna carpeta hacia arriba.

Puede moverse link.txty siempre apuntará a destination.txtuna carpeta hacia arriba.

2. C:\>mklink A\Link.txt ..\Destination.txt

Esto crea un enlace simbólico C:\A\Link.txtparaC:\Destination.txt

iglvzx
fuente
Eso es todo. En lugar de comenzar con una letra de unidad o una barra invertida, simplemente comienza con un directorio. por ejemplo, mklink destination.txt "documentation\readme.txt"señalará una carpeta secundaria llamada documetation "y un archivo en esa carpeta llamado * readme.txt .
surfasb
@surfasb, @iglvzx: Al principio estaba confundido, ya que eso es exactamente lo que he estado intentando. Pero cuando ambos confirman que esto funciona, me di cuenta de que sí funciona CMD, pero no en TCC/LE, que es lo que he estado usando. Me sorprende que esté alterando (expandiendo) los argumentos de ruta para programas externos.
Paradroid
@surfasb: Este problema con TCC / LE se ha solucionado con el nuevo v13, pero sucedió con 12.11.76, que había estado usando.
Paradroid
2
@paradroid: me alegra que esté funcionando. Recuerdo con cariño la vieja versión antigua de TCC. ¿Cuánto tiempo lo has estado usando ahora? Por otro lado, sí, los matices de la enumeración PATH me aturden. Y la [publicación de blog] obligatoria :( blogs.msdn.com/b/oldnewthing/archive/2005/11/22/495740.aspx ) sobre cómo las decisiones anteriores de MS-DOS sobre compatibilidad todavía nos afectan hoy.
Surfasb