MKLINK vs. Junction.exe

27

SysInternals tiene un programa junction.exe que crea uniones (también conocidos como puntos de análisis , también conocidos como enlaces simbólicos) en Windows.

Sin embargo, Windows también viene con un mklink que parece hacer lo mismo.

¿Hay una diferencia significativa?

Tiendo a creer que si SysInternals tiene su propio programa, vieron una deficiencia en el programa MKLink estándar.

abelenky
fuente
55
Junctionfue publicado en septiembre de 2010, según la página vinculada. Del mismo modo, la página vinculada MKLINKtiene una fecha de publicación en abril de 2012. Eso parece indicar que Junctionfue creado antes de que el mklinkejecutable se agregara a Windows. (No he profundizado en cuándo apareció originalmente cada uno, de ahí un comentario en lugar de una respuesta completa. Si alguien quiere ampliar esto y crear una respuesta adecuada, sea mi invitado.)
un CVn
¡Uy! Me lo perdí. Parece que Junction es anterior a mklink. Gracias.
abelenky

Respuestas:

41

Comparación

El junctionprograma de Mark Russinovich fue diseñado con un objetivo específico en mente: crear (y eliminar) puntos de unión. Se mantuvo a través de los años, pero hasta ahora no se agregaron nuevas características. La última versión se lanzó el 4 de julio de 2016.

En cuanto a mklink, es un comando incorporado disponible en Windows Vista y versiones posteriores. Puede crear enlaces duros, puntos de unión y enlaces simbólicos. No se proporciona una función de eliminación específica; simplemente puede usar los comandos delo rd, dependiendo de si el enlace apunta a un archivo o un directorio, respectivamente.


Un poco de historia

Antes de Vista, los sistemas operativos Windows no proporcionaban una forma de crear puntos de unión listos para usar : tenía que obtener una copia del Kit de recursos oficial , utilizar un programa de terceros o escribir uno usted mismo.

2000

Se junctionlanzó la primera versión de la herramienta. Citando el sitio web oficial:

Windows 2000 y superior admite enlaces simbólicos de directorio, donde un directorio sirve como un enlace simbólico a otro directorio en la computadora. [...]

Desafortunadamente, Windows no tiene herramientas para crear uniones; debe comprar el Kit de recursos de Win2K, que viene con el linkdprograma para crear uniones. Por lo tanto, decidí escribir mi propia herramienta para crear uniones: Junction .

Fuente: Unión

2005-06

El mklinkcomando se introdujo con Windows Vista durante la fase beta temprana.

Estaba disponible desde el lanzamiento oficial de la Beta 1 el 27 de julio de 2005. Inicialmente, solo podía crear enlaces simbólicos y enlaces duros; La capacidad de crear puntos de unión se produjo más tarde con el Community Technology Preview (CTP) lanzado el 19 de diciembre de 2005.

Aparentemente, el comando pasó completamente desapercibido hasta algún tiempo después, en 2006, cuando se reveló por primera vez. Aquí está la referencia más temprana que pude encontrar:

Puede crear un enlace simbólico en Windows Vista ahora.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

[...]

Fuente: enlace simbólico en Windows Vista

También:

Malcolm [MSFT] (Experto):
P: ¿Existe una manera realmente fácil de crear un enlace simbólico?
A: Abra CMD y escriba 'mklink'. Esta herramienta le permitirá crear uniones, enlaces duros y enlaces simbólicos.

Fuente: NTFS Beta Chat Transcript (12 de julio de 2006)


Información Adicional

Un archivo o directorio puede contener un punto de análisis, que es una colección de datos definidos por el usuario. El formato de estos datos es entendido por la aplicación que almacena los datos y un filtro del sistema de archivos, que instala para interpretar los datos y procesar el archivo.

Por ejemplo, los puntos de análisis se utilizan para implementar enlaces del sistema de archivos NTFS y el Servidor de almacenamiento remoto de Microsoft (RSS).

Fuente: Puntos de análisis

Hay tres tipos de enlaces de archivos compatibles con el sistema de archivos NTFS: enlaces duros, uniones y enlaces simbólicos.

Fuente: enlaces duros y cruces

Enlaces duros

Un enlace duro es la representación del sistema de archivos de un archivo mediante el cual más de una ruta hace referencia a un solo archivo en el mismo volumen. [...] Cualquier cambio en ese archivo es visible instantáneamente para las aplicaciones que acceden a él a través de los enlaces duros que lo referencian. Sin embargo, el tamaño de entrada del directorio y la información de atributos se actualizan solo para el enlace a través del cual se realizó el cambio.

Fuente: enlaces duros y cruces

Uniones

Una unión (también llamada enlace flexible) difiere de un enlace duro en que los objetos de almacenamiento a los que hace referencia son directorios separados, y una unión puede enlazar directorios ubicados en diferentes volúmenes locales en la misma computadora.

Fuente: enlaces duros y cruces

Los puntos de unión solo pueden vincularse a directorios en un volumen local; los puntos de unión a recursos compartidos remotos no son compatibles.

Fuente: punto de unión NTFS

Enlaces simbólicos

Un enlace simbólico es un objeto del sistema de archivos que apunta a otro objeto del sistema de archivos. El objeto al que se apunta se llama objetivo.

Los enlaces simbólicos son transparentes para los usuarios; los enlaces aparecen como archivos o directorios normales, y el usuario o la aplicación pueden actuar sobre ellos de la misma manera.

Fuente: enlaces simbólicos

[Los enlaces simbólicos] se introdujeron con las modificaciones realizadas en el sistema de archivos NTFS con Windows Vista , pero disponibles a través de controladores de filtro para Windows XP .

A diferencia de un punto de unión NTFS (disponible desde Windows 2000), un enlace simbólico también puede apuntar a un archivo o ruta de red SMB remota . Mientras que los puntos de unión NTFS admiten solo rutas absolutas en unidades locales, los enlaces simbólicos NTFS permiten vincular usando rutas relativas.

La configuración de seguridad predeterminada en Windows Vista / Windows 7 no permite que los administradores no elevados y todos los no administradores creen enlaces simbólicos.

Fuente: enlace simbólico NTFS

Otras lecturas

y31415
fuente
Si va a hacer una respuesta mucho más detallada que la mía, también podría mencionar que los Puntos de análisis NTFS son otro sabor.
Paradroid
(refiriéndose a Hard Links, para aclarar)
paradroid
Pura respuesta de calidad.
show
2
NB: Hay enlaces simbólicos de "archivo" (hechos por simple, mklinkindependientemente del tipo de destino) y hay enlaces simbólicos de "directorio" (hechos por mklink /d). Es mejor crear el tipo correcto de enlace para el objetivo.
kbolino
Tengo curiosidad por saber por qué junction.exe se actualizó en 2016 y por qué continúan enviándolo con SysInternals. ¿Están en contra de la dependencia? Ahora que lo pienso, sí lo son ... Probablemente la mitad de esas herramientas tienen suficientes reemplazos en Windows. Excelente respuesta detallada.
Adam Plocher
2

Como ya se mencionó en los comentarios, junction.exesalió antes de Vista / Winserver 2008, que vino con el mklinkcomando.

Por lo tanto, no tiene sentido usarlo en Vista en adelante. De todos modos, las versiones de Windows anteriores a Vista ya no son compatibles.

Además, junction.exeno admite enlaces simbólicos NTFS (solo uniones NTFS ), que se introdujeron con Vista / WinServer 2008 y el mlinkcomando.

paradroid
fuente