No contexto do NTFS:
MKLINK [[/D] | [/H] | [/J]] Link Target
/D
Cria um link simbólico de diretório. O padrão é um link simbólico do arquivo.
/H
Cria um link físico em vez de um link simbólico.
/J
Cria uma junção de diretório.
Link
especifica o novo nome do link simbólico.
Target
especifica o caminho (relativo ou absoluto) ao qual o novo link se refere.
Uma junção de diretório não é exatamente a mesma coisa que um link simbólico de diretório ?
Qual é a diferença entre
mklink /D f1 f2
emklink /J f1 f2
?Como um "diretório" é na verdade apenas um arquivo , qual seria a diferença entre um link simbólico de diretório e um link simbólico de arquivo?
windows
filesystems
ntfs
symbolic-link
Pacerier
fonte
fonte
Respostas:
Uma junção definitivamente não é a mesma coisa que um link simbólico de diretório, embora eles se comportem da mesma forma. A principal diferença é que, se você estiver procurando um servidor remoto, as junções serão processadas no servidor e os links simbólicos do diretório serão processados no cliente . Veja também o comentário de Matthew sobre o fato de que isso significa que links simbólicos no sistema de arquivos local podem apontar para sistemas de arquivos remotos.
Suponha que em uma máquina chamada Alice você coloque um ponto de junção
c:\myjp
e um link simbólico de diretórioc:\mysymlink
, ambos apontando parac:\targetfolder
. Enquanto estiver usando Alice, você não notará muita diferença entre eles. Mas se você estiver usando outra máquina chamada Bob, o ponto de junção\\Alice\c$\myjp
apontará para\\Alice\c$\targetfolder
mas o link simbólico
\\Alice\c$\mysymlink
apontará para\\Bob\c$\targetfolder
(Nota: por padrão, o sistema não segue links simbólicos em volumes remotos, portanto, na maioria dos casos, o segundo exemplo resultará em "Arquivo não encontrado" ou "O link simbólico não pode ser seguido porque seu tipo está desativado". )
A diferença entre um link simbólico de diretório e um link simbólico de arquivo é simplesmente que um representa um diretório e um representa um arquivo. Como o destino do link não precisa existir quando o link é criado, o sistema de arquivos precisa saber se deve informar aos aplicativos que é um diretório ou não.
Também deve ser observado que a criação de um link simbólico requer privilégio especial (por padrão, disponível apenas para processos elevados), enquanto a criação de uma junção requer apenas acesso ao sistema de arquivos.
fonte
C:\testlink
(que aponte para oC:\test
meu computador) e alguém acessar remotamente o meu computador e clicarC:\testlink
nele, ele será resolvidoC:\test
no computador HIS, enquanto que se eu criar uma junção de diretórioC:\testlink
(que aponte paraC:\test
no meu computador) e alguém acessar remotamente o meu computador e clicarC:\testlink
nele) o levaria aoC:\test
meu computador? Ou entendi errado?C:\MyNetworkShare
que também aponte\\Alice\Share
?Conversa complexa machuca o cérebro - eu gosto de gráficos:
Suponha que any
MyLink
é um link simbólico e anyMyJunc
é uma junção apontando paraTarget as created
.por exemplo
mklink /D MyLink C:\T_Dir
para criar um link simbólico para o diretório de destinomklink /J MyJunc C:\T_Dir
para criar uma junção de diretório com o diretório de destinoOnde a sintaxe é
mklink [/J,/D] [link path] [target path]
digitada na máquina localErro * 1 - Se você desbloqueou o acesso a links simbólicos remotos na sua máquina local, isso funcionaria .. mas apenas na máquina local onde está desbloqueado
fonte
d:\_tmp\data
. Criar link assim:d:\_tmp>mklink /d data-link data
. O usuário remoto tem acesso total ad:\_tmp
todas as suas subpastas, mas ainda não poderá abrird:\_tmp\data-link
.Complex talk hurts brain -- I like charts
Eu amo essa frase e o gráfico também.Links simbólicos têm mais funcionalidade, enquanto junções quase parecem ser um recurso herdado por causa de suas limitações, mas as implicações de segurança dessas limitações são especificamente o motivo pelo qual uma junção pode ser preferida a um link simbólico. O direcionamento remoto torna os links simbólicos mais funcionais, mas também aumenta seu perfil de segurança, enquanto as junções podem ser consideradas mais seguras porque são restritas aos caminhos locais . Portanto, se você deseja um link local e pode viver com um caminho absoluto, provavelmente está melhor com uma junção; caso contrário, considere um link simbólico para suas habilidades adicionais.
** A declaração de diferença de velocidade / complexidade vem de uma declaração não verificada na entrada da Wikipedia sobre pontos de nova análise NTFS (uma boa leitura). *
Outras comparações de links NTFS
Aqui estão algumas outras comparações sobre o tópico, mas elas podem ser enganosas ao considerar junções, porque não listam os benefícios que listo acima.
Retirado daqui (uma boa leitura introdutória)
Da página SS64 no MKLink
Comentários sobre Terminologia
As junções são links simbólicos
Junções e links simbólicos estão realmente fazendo a mesma coisa da mesma maneira (pontos de nova análise), além das diferenças mencionadas acima na maneira como são processadas. De fato, tecnicamente, uma junção é um link simbólico e, algumas vezes, a documentação pode chamar uma junção de link simbólico, como é o caso aqui . Portanto, isso é apenas algo a ter em conta em relação à terminologia.
NTFS
Embora o OP especifique isso, vale ressaltar que "link simbólico" é um termo muito geral que não é específico do NTFS. Portanto, para ser específico, essa comparação é sobre junções NTFS versus links simbólicos NTFS.
fonte