Comparação
O programa junction
de Mark Russinovich foi projetado com um objetivo específico em mente: criar (e excluir) pontos de junção. Foi mantido ao longo dos anos, mas nenhum novo recurso foi adicionado até agora. A versão mais recente foi lançada em 4 de julho de 2016.
Quanto a mklink
, é um comando interno disponível no Windows Vista e posterior. Pode criar links físicos, pontos de junção e links simbólicos. Uma função de exclusão específica não é fornecida; você pode simplesmente usar os comandos del
ou rd
, dependendo se o link aponta para um arquivo ou diretório, respectivamente.
Um pouco de história
Antes do Vista, os sistemas operacionais Windows não ofereciam uma maneira de criar pontos de junção fora da caixa: você tinha que obter uma cópia do oficial Resource Kit , use um programa de terceiros ou escreva um por conta própria.
2000
A primeira versão da ferramenta junction
foi lançada. Citando o site oficial:
Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. [...]
Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the
linkd
program for creating junctions. I therefore decided to write my own junction-creating tool: Junction.Source: Junction
2005-06
O comando mklink
foi introduzido no Windows Vista durante a fase beta inicial.
Ele estava disponível desde que o Beta 1 oficial foi lançado em 27 de julho de 2005. Inicialmente, ele só podia criar links simbólicos e hard links; a capacidade de criar pontos de junção veio mais tarde com o Community Technology Preview (CTP) lançado em 19 de dezembro de 2005.
Aparentemente, o comando passou completamente despercebido até algum tempo depois, em 2006, quando foi divulgado pela primeira vez. Aqui está a referência mais antiga que consegui encontrar:
You can create symbolic link in Windows Vista now.
C:\test>ver Microsoft Windows [Version 6.0.5365] C:\test>mklink Creates a symbolic link. MKLINK [[/D] | [/H] | [/J]] Link Target [...]
Source: Symbolic link in Windows Vista
Além disso:
Malcolm [MSFT] (Expert):
Q: Is there a really easy way to make a symlink?
A: Open CMD, and type 'mklink'. This tool will allow you to create junctions, hardlinks and symbolic links.
Informações adicionais
A file or directory can contain a reparse point, which is a collection of user-defined data. The format of this data is understood by the application which stores the data, and a file system filter, which you install to interpret the data and process the file.
For example, reparse points are used to implement NTFS file system links and the Microsoft Remote Storage Server (RSS).
Source: Reparse Points
There are three types of file links supported in the NTFS file system: hard links, junctions, and symbolic links.
Source: Hard Links and Junctions
Links físicos
A hard link is the file system representation of a file by which more than one path references a single file in the same volume. [...] Any changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made.
Source: Hard Links and Junctions
Junções
A junction (also called a soft link) differs from a hard link in that the storage objects it references are separate directories, and a junction can link directories located on different local volumes on the same computer.
Source: Hard Links and Junctions
Junction points can only link to directories on a local volume; junction points to remote shares are unsupported.
Source: NTFS junction point
Links simbólicos
A symbolic link is a file-system object that points to another file system object. The object being pointed to is called the target.
Symbolic links are transparent to users; the links appear as normal files or directories, and can be acted upon by the user or application in exactly the same manner.
Source: Symbolic Links
[Symbolic links] were introduced with the modifications made to the NTFS file system with Windows Vista, but available through filter drivers for Windows XP.
Unlike an NTFS junction point (available since Windows 2000), a symbolic link can also point to a file or remote SMB network path. While NTFS junction points support only absolute paths on local drives, the NTFS symbolic links allow linking using relative paths.
The default security settings in Windows Vista/Windows 7 disallow non-elevated administrators and all non-administrators from creating symbolic links.
Source: NTFS symbolic link