Maneira simples e fácil de criar links simbólicos no Windows?

Respostas:

108

Você já viu Junction ?

Além disso, o Windows Vista introduziu a ferramenta de linha de comando mklink para criar links simbólicos.

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.

Scott Hanselman tem um artigo sobre isso em http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx .

Se você está falando apenas sobre o Windows XP, usei apenas a ferramenta Junction.

David Mohundro
fonte
4
Parece que outra opção pode ser a opção / J no mklink (como "mklink / J <JUNCTION> <DIR>"). Observe que ele não é um executável separado, é um comando no cmd; portanto, se você estiver chamando do PowerShell, terá que fazer o shell para o cmd (por exemplo, "cmd / c mklink / J <JUNCTION> <DIR>" )
David Mohundro
Wow junção funciona muito bem. Ele cria um link simbólico real para que até Cygwin o siga.
styfle
3
mklinkEra exatamente o que eu estava procurando.
prolink007
2
Por que, oh, por que eles reverteram a ordem dos argumentos do antigo lncomando UNIX ?
22416 kbolino
1
@kbolino: Fácil! Porque eles simplesmente esperam que o mundo de código aberto "acompanhe" com eles ... ugh.
tniles
22

Existe uma ferramenta chamada Link Shell Extension que facilita a criação de links simbólicos para arquivos, além de um tipo mais antigo de link chamado "Junction" (basicamente, um link simbólico para uma pasta), além de muitos outros tipos de links mais exóticos.

insira a descrição da imagem aqui

O uso básico é simples: navegue até a pasta de origem, clique com o botão direito no arquivo ou pasta à qual deseja vincular e escolha a nova opção "Selecionar fonte de link" no menu de contexto. Em seguida, vá para a pasta em que deseja soltar o link, clique com o botão direito do mouse e selecione "Soltar como" e, em seguida, "Link simbólico" para arquivos ou "Junção" para pastas.

mas

CUIDADO: Uma das razões pelas quais a Microsoft dificulta isso é que junções e links simbólicos podem facilitar a exclusão acidental de arquivos críticos!

Em algumas versões anteriores ao Windows 7, a exclusão de uma junção ou link simbólico no Explorer excluiria automaticamente o diretório original também!

Eu acredito que este problema já foi resolvido ... mas é claro que eu não fazer promessas ... ser particularmente cuidadosos com navegadores de arquivos de terceiros (se você estiver a ponto de precisar de links simbólicos, tenho certeza que você está dolorosamente ciente da força do Windows 7 Explorer.)

Mas eu discordo. O que quero dizer é: tenha cuidado, faça sua lição de casa e leia a documentação do LSE para descobrir como as junções e links simbólicos realmente funcionam e, pelo amor de Deus, VOLTAR TUDO ACIMA antes de começar a mexer nas junções e links simbólicos!

Robert Roos
fonte
9

o diretório referenciado deve funcionar como se tivesse sido realmente adicionado a% PATH%, à direita

Não, se você tiver adicionado C: \ bin ao seu% PATH% e dentro de c: \ bin, você criou uma junção chamada c: \ bin \ anotherDir \ para apontar para c: \ anotherDir \ para poder executar o arquivo.exe. a linha de comando como:

> anotherDir\some.exe

Isso não funcionaria, pois a variável% PATH% não funciona com subdiretórios (vinculados ou não)

você precisaria criar um hardlink diretamente para some.exe, para que o hardlink c: \ bin \ some.exe aponte para c: \ anotherDir \ some.exe

Portanto, em resumo, não acredito que você possa fazer exatamente o que está pedindo. Dito isto, recomendo a Link Shell Extension para criar junções e hardlinks. Oferece mais recursos do que a maioria das ferramentas de junção em uma extensão muito fácil de usar do Windows Explorer


fonte
7

Experimente o Symlinker, uma ferramenta da GUI para criar o Symlink no Windows

Este aplicativo precisa do .Net Framework 3.5 para ser executado (recomendado pelo SP1) e, a partir de 24/04/2015, este software funcionará apenas sob

  • Windows Vista
  • Windows 7
  • Windows 8 e 8.1

Interface do usuário do Symlinker

Taranfx
fonte
Ele pode criar links simbólicos no Windows XP?
Sebastian Godelet 11/12/12
7

COMANDO NATIVO Windows Vista, 7 e 8:

  1. Link simbólico do arquivo (padrão):
    • mklink <oldpath> <newpath>
  2. Link simbólico do diretório :
    • mklink /D <oldpath> <newpath>
BenH
fonte
Isso já foi proposto como resposta há 7 anos.
Josh
3
Isso é impreciso: o Windows XP não possui um mklinkcomando nativo .
Patricktokeeffe 27/05
O Vista foi a primeira versão do Windows a incluir mklink, por technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx
digo Reinstate Monica
4

Eu não acho que a versão do NTFS que acompanha o XP suporta links simbólicos. O NTFS6, fornecido no Vista e no Windows 7, suporta links simbólicos com o mklinkcomando. A versão XP do NTFS faz hardlinks de apoio, mas estes não podem abranger volumes.

Darth Android
fonte
2

A junção é um ótimo utilitário, mas uma coisa a se observar é que os pontos de junção parecem exatamente iguais às pastas comuns no Windows Explorer.

Use 'junction.exe -s' na linha de comando para listar todas as junções em pastas e subpastas.

Jonathan Webb
fonte
0

Existe um software leve chamado "Easy Symbolic Link" que facilita a criação com um clique direito. Experimente aqui:

https://blog.afach.de/?page_id=589

O físico quântico
fonte