Quando devo usar links físicos em vez de links virtuais?

10

Estou prestes a começar a brincar, mklinkmas ainda estou tentando entender de verdade essa coisa de "link simbólico". Em particular, notei que existem dois tipos de links - "soft links" e "hard links" -, mas estou tendo dificuldades para realmente entender a diferença entre os dois, ou por que devo preferir um sobre o outro para qualquer dado caso de uso.

O máximo que pude reunir até agora é o seguinte:

  • Os Soft Links são tratados como ponteiros para o arquivo / pasta de destino.
  • Os Links físicos são tratados como se realmente fossem o arquivo / pasta de destino.

O que isso realmente significa em termos de como o sistema operacional e os aplicativos tratam os links? Quais fatores devem ser considerados na decisão de usar um ou outro?

O caso de uso atual que tenho é para fazer com que o SkyDrive sincronize arquivos / pastas que estão fora do diretório real do SkyDrive . No entanto, eu preferiria que as respostas também incluíssem diretrizes gerais para referência futura.

Iszi
fonte

Respostas:

6

É possível ter links flexíveis pendentes, pois um link vinculado é um ponteiro para um arquivo.

Não é possível ter hardlinks pendentes. Cada arquivo possui pelo menos um hardlink, ou seja, entrada de diretório no sistema de arquivos. Portanto, se você criar um arquivo e, em seguida, criar um link físico para ele e excluir o arquivo original, o link físico não será afetado.

Por causa disso, os hardlinks podem levar você a acreditar quando você exclui um arquivo que realmente desapareceu, embora, a menos que você exclua TODOS os hardlinks, o arquivo ainda existirá. Na maioria das vezes, você deseja usar os softlinks, a menos que queira aproveitar esse aspecto específico dos hardlinks.

LawrenceC
fonte
Portanto, uma interpretação metafórica apropriada seria que um link flexível é apenas um atalho de arquivo, enquanto um link físico é uma cópia sincronizada do arquivo?
Iszi
Bem ... lembre-se de que um link físico não faz uma cópia adicional dos dados do arquivo. É outra entrada do diretório físico. Portanto, dois hardlinks para um arquivo não alteram muito o espaço em disco usado.
LawrenceC
Se você é conhecedor de conceitos de programação, pense em um link físico como um ponteiro tradicional e no link físico como um ponteiro (inteligente) com contagem de referência.
arroz