Primeiro, uma rápida definição de termos. Existem três tipos de “links simbólicos” no Windows.

  • linkssoft (também chamados de links simbólicos, ou links simbólicos)
  • links duros
  • junctions (um tipo de link soft apenas para diretórios)

Links soft podem ser criados para arquivos ou diretórios.

Links duros podem ser criados apenas para arquivos.

As ligações soft e hard devem ser criadas no mesmo volume que o alvo, ou seja, não se pode ligar algo em C: a algo em D:.

Deleting Links

É aqui que a diferença entre ligações soft e hard é mais evidente.

Deleting the target will cause soft links to stop working. O que ele aponta desaparece. Os links rígidos, no entanto, continuarão funcionando até que você apague o link rígido em si. O link rígido age como o ficheiro original, porque para todos os efeitos, é o ficheiro original.

Junctions

Windows também tem outro tipo de link apenas para directórios, chamado Junctions.

Junctions parecem e actuam como soft links. A principal diferença é que eles permitem que você ligue diretórios que estão localizados em diferentes volumes locais (mas ainda no mesmo computador). Você não pode criar uma junção para uma localização de rede.

Usando MKLINK

Criar um link suave para um diretório.

Criar um link de junção para um diretório.

Criar um link suave para um arquivo.

Criar um link rígido para um ficheiro.

Como eles são.

Nota para utilizadores PowerShell:
MKLINK não é um executável que se possa simplesmente chamar a partir do PowerShell. Você tem que chamá-lo através do prompt de comando.

cmd /c mklink /D symlink_dir real_dir

Alternativamente, você pode usar este módulo que escrevi que tem wrappers PowerShell nativos para MKLINK.

Ler sobre MSLINK em MSDN.

Usando FSUTIL

FSUTIL é outra forma de criar links rígidos (mas não soft links). Isto é o mesmo que mklink /H.

Ler sobre FSUTIL em MSDN.

Using Junction

Junction é uma ferramenta fornecida pela Sysinternals e fornece uma outra maneira de criar junções. O mesmo que mklink /J. Ela também tem algumas outras ferramentas para trabalhar com junções que eu não vou cobrir aqui.