Como crio um link simbólico no Windows?


113

O Windows Vista adicionou a capacidade de criar links simbólicos para arquivos e diretórios. Como crio um link simbólico e quais são as versões atuais de consumidor e servidor do Windows que o suportam?


6
Alguém pode destacar as diferenças entre um link simbólico e um atalho?
#

11
@tomjedrz: se você estiver usando um atalho, qualquer API para abrir esse atalho abrirá um arquivo de texto que contém o caminho para o arquivo / pasta de destino. se você estiver usando links, qualquer API para abrir esse link abrirá o arquivo / pasta de destino.
Afriza N. Arief

2
Ao contrário do que todas as pessoas disseram, confirmo que é possível usar links simbólicos no Windows XP . (Eu o uso para instalar o banco de dados do Picasa na pasta compartilhada da VM). Dê uma olhada em schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html e navegue até a seção "Links simbólicos para Windows XP". HTH
Adam Ryczkowski

Respostas:


109

Você pode criar um link simbólico com o utilitário de linha de comando mklink.

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

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

Links simbólicos via mklink estão disponíveis desde o Windows Vista e Windows Server 2008. No Windows XP e Windows Server 2003, você pode usar

fsutil hardlink create <destination filename> <source filename>

De acordo com o msdn.microsoft , os links simbólicos NÃO são suportados no FAT16 / 32 e no exFAT. Parece que o Windows apenas os suporta de ou para Partições NTFS. Os futuros sistemas operacionais Windows provavelmente continuarão com o suporte ao mklink.

Você pode ler mais informações sobre esse novo recurso no Microsoft TechNet , no blog de Junfeng Zhang ou no howtogeek.com .


Seria bom adicionar o URL do Technet de David à sua entrada para que fique completo.
Michael Pryor

nota do site, o que é uma junção (opção / J)?
Roy Rico

Junção de diretório, um tipo de link simbólico de diretório. support.microsoft.com/?kbid=205524
Lara Dougan

11
O NTFS oferece suporte a links (com vários nomes) desde o Windows 2000, mas eles foram usados ​​apenas internamente, principalmente nos compartilhamentos de domínio SYSVOL; alguns utilitários estavam disponíveis para gerenciá-los, mas não estavam embutidos; O Vista introduziu a ferramenta MKLINK e o uso extensivo de links nas instalações padrão do Windows.
Massimo

2
Seria bom mencionar fsutilde resposta @ de Sascha abaixo para fornecer uma solução para o Windows Server 2003.
Phrogz

30

No Windows XP, você pode usar fsutil(embutido no sistema operacional) para criar um hardlink

 fsutil hardlink create c:\foo.txt c:\bar.txt

Lembre-se de que o fsutil só funcionará se os dois estiverem na mesma unidade


2
Boa resposta. Estou no WinXP / Win2003 e precisava do mklink, mas isso resolveu o meu problema. Eu costumo usar junction.exe da Sysinternals, mas que só lida com diretórios e neste caso eu precisava de um link do arquivo
s3v1

Uma pena que um link simbólico não possa ser criado pela fsutil, pelo menos pelo que li em outro lugar. Este é um link físico e, portanto, não é uma resposta para a pergunta.
Vlasec 5/05

10

Uma coisa pequena, se você estiver usando o Powershell, o mklink não funciona diretamente, execute-o assim:

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2

11
Isso deve ser / c, não / k, caso contrário, o cmd.exe não será encerrado.
dangph

7

Use mklink ou junção da Sysinternals (Microsoft). Eu acredito mklink irá funcionar no Windows 2000 e acima, mas não consigo encontrar qualquer documentação duro nisso. junção é para Windows 2000 e superior.


11
O comando mklink é o Vista e o Server 2008 e superiores, como eu apontei acima.

4

Não encontrou isso em nenhuma das respostas, mas o linkd.exe (no kit de recursos do Windows 2003 aqui ) permite criar junções, que funcionam praticamente como um link físico / físico no Linux. As junções estão disponíveis no Windows 2000 e superior; portanto, basta copiar o linkd.exe no sistema de destino e ele deve funcionar.


11
Note que o `/ linkd` é apenas para diretórios, não para arquivos.
21411 Phrogz

3

Se você ainda estiver no Windows antigo, como XP, 2000, 2003, etc., tente o NTFS Link .

Eu uso isto muito. Você obtém uma opção de menu com o botão direito do mouse no shell para criar um ponto de junção. Coisas excelentes.


Isso funcionou muito bem para mim no Windows 2003 por criar um link simbólico para uma pasta em outra unidade. Obrigado!
Phil

Comentário de usuário anônimo, originalmente editado na resposta: "Nota: Para o XP funcionar, ele deve estar usando uma partição NTFS, não FAT ou FAT32. Consulte aumha.org/win5/a/ntfscvt.php para obter etapas sobre como converter para NTFS ".
squillman

2

Consulte a entrada do TechNet . Acredito que seja um recurso do Vista / Server 2008 e superior.


Legal, nunca se sabia sobre esse recurso antes, obrigado pelo link, poderia ser muito útil !!!
11009 Marc-Andre R.

1

Para garantir que seus links funcionem, convém verificar a configuração do seu servidor. Os links podem ser criados, mas, a menos que você use a configuração symlinkevaluation no comando a seguir, seus links poderão não funcionar.

fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

Consulte também http://technet.microsoft.com/en-us/library/cc754077%28v=ws.10%29.aspx . Por padrão, apenas as opções locais estão ativadas.

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.