MKLINK vs. Junction.exe


27

O SysInternals possui um programa junction.exe que cria junções (também conhecidas como pontos de nova análise , também conhecidas como symlinks) no Windows.

No entanto, o Windows também vem com um mklink que parece fazer a mesma coisa.

Existe uma diferença significativa?

Eu acredito que, se o SysInternals tiver seu próprio programa, eles terão uma deficiência no programa MKLink padrão.


5
Junctionfoi publicado em setembro de 2010, de acordo com a página vinculada. Da mesma forma, a página vinculada a MKLINKtem uma data de publicação em abril de 2012. Isso parece indicar fortemente que Junctionfoi criado antes da mklinkexecução do executável no Windows. (Eu não cavaram ainda mais em quando cada apareceu originalmente, portanto, um comentário em vez de uma resposta completa Se alguém quer expandir sobre isso e criar uma resposta adequada, seja meu convidado..)
um CVn

Opa! Eu senti falta disso. Parece que a junção antecede o mklink. Obrigado.
Abelenky

Respostas:


41

Comparação

O junctionprograma 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é o momento. 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. Ele 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 delou 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 forneciam uma maneira imediata de criar pontos de junção: era necessário obter uma cópia do Resource Kit oficial , usar um programa de terceiros ou escrever você mesmo.

2000

A primeira versão da junctionferramenta foi lançada. Citando o site oficial:

O Windows 2000 e superior oferecem suporte a links simbólicos de diretório, onde um diretório serve como um link simbólico para outro diretório no computador. [...]

Infelizmente, o Windows não possui ferramentas para criar junções - você precisa comprar o Win2K Resource Kit, que acompanha o linkdprograma para criar junções. Decidi, portanto, escrever minha própria ferramenta de criação de junções : Junction .

Fonte: Junção

2005-06

O mklinkcomando foi introduzido no Windows Vista durante a fase beta inicial.

Estava disponível desde o Beta 1 oficial 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 posteriormente com o Community Technology Preview (CTP), lançado em 19 de dezembro de 2005.

Aparentemente, o comando passou despercebido até algum tempo depois, em 2006, quando foi divulgado pela primeira vez. Aqui está a referência mais antiga que consegui encontrar:

Você pode criar um link simbólico no Windows Vista agora.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

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

[...]

Fonte: Link simbólico no Windows Vista

Além disso:

Malcolm [MSFT] (Especialista):
P: Existe uma maneira realmente fácil de criar um link simbólico?
R: Abra o CMD e digite 'mklink'. Esta ferramenta permitirá que você crie junções, hardlinks e links simbólicos.

Fonte: Transcrição do bate-papo do NTFS Beta (12 de julho de 2006)


Informação adicional

Um arquivo ou diretório pode conter um ponto de nova análise, que é uma coleção de dados definidos pelo usuário. O formato desses dados é entendido pelo aplicativo que armazena os dados e um filtro do sistema de arquivos, que você instala para interpretar os dados e processar o arquivo.

Por exemplo, os pontos de nova análise são usados ​​para implementar os links do sistema de arquivos NTFS e o RSS (Microsoft Remote Storage Server).

Fonte: Pontos de nova análise

Existem três tipos de links de arquivos suportados no sistema de arquivos NTFS: links físicos, junções e links simbólicos.

Fonte: Links físicos e junções

Links físicos

Um link físico é a representação do sistema de arquivos de um arquivo pelo qual mais de um caminho faz referência a um único arquivo no mesmo volume. [...] Quaisquer alterações nesse arquivo são visíveis instantaneamente para aplicativos que acessam através dos links físicos que fazem referência a ele. No entanto, o tamanho da entrada do diretório e as informações do atributo são atualizadas apenas para o link através do qual a alteração foi feita.

Fonte: Links físicos e junções

Junções

Uma junção (também chamada de link virtual) difere de um link físico, pois os objetos de armazenamento que ele referencia são diretórios separados, e uma junção pode vincular diretórios localizados em diferentes volumes locais no mesmo computador.

Fonte: Links físicos e junções

Os pontos de junção podem vincular apenas a diretórios em um volume local; pontos de junção para compartilhamentos remotos não são suportados.

Fonte: ponto de junção NTFS

Links simbólicos

Um link simbólico é um objeto do sistema de arquivos que aponta para outro objeto do sistema de arquivos. O objeto que está sendo apontado é chamado de destino.

Links simbólicos são transparentes para os usuários; os links aparecem como arquivos ou diretórios normais e podem ser tratados pelo usuário ou aplicativo exatamente da mesma maneira.

Fonte: Links Simbólicos

[Links simbólicos] foram introduzidos com as modificações feitas no sistema de arquivos NTFS com o Windows Vista , mas disponíveis através de drivers de filtro para o Windows XP .

Diferentemente de um ponto de junção NTFS (disponível desde o Windows 2000), um link simbólico também pode apontar para um arquivo ou caminho de rede SMB remoto . Enquanto os pontos de junção NTFS suportam apenas caminhos absolutos nas unidades locais, os links simbólicos do NTFS permitem a vinculação usando caminhos relativos.

As configurações de segurança padrão no Windows Vista / Windows 7 impedem que administradores não elevados e todos os não administradores criem links simbólicos.

Fonte: Link simbólico NTFS

Leitura adicional


Se você deseja fornecer uma resposta muito mais detalhada do que a minha, também pode mencionar que os Pontos de Nova Análise NTFS são outro sabor.
Paradroid 12/05/2014

(referindo-se a links físicos, para esclarecer)
Paradroid

Resposta de pura qualidade.
Sshow 12/05

2
NB: Existem links simbólicos de "arquivo" (criados por planície, mklinkindependentemente do tipo de destino) e existem links simbólicos de "diretório" (criados por mklink /d). É melhor criar o tipo certo de link para o destino.
22416 kbolino

Estou curioso para saber por que o junction.exe foi atualizado em 2016 e por que eles continuam sendo enviados com o SysInternals? Eles são contra a profanação? Venha para pensar sobre isso, sim, eles são ... Provavelmente metade dessas ferramentas têm substituições suficientes no Windows. Excelente resposta detalhada.
Adam Plocher

2

Como já mencionado nos comentários, junction.exesaiu antes do Vista / Winserver 2008, que veio com o mklinkcomando.

Portanto, não faz sentido usá-lo no Vista em diante. Versões do Windows anteriores ao Vista não são mais suportadas de qualquer maneira.

Além disso, junction.exenão suporta Links Simbólicos NTFS (somente junções NTFS ), que foram introduzidas com o Vista / WinServer 2008 e o mlinkcomando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.