Qual é a diferença entre um link simbólico e um link físico?

55

Ouvi dizer que agora você pode criar links temporários no Vista também . Então, qual é a diferença entre um link soft (simbólico) e um hard link no UNIX / Linux / Vista?

Existem vantagens em usar uma sobre a outra? Ou eles servem apenas dois propósitos distintos?

    
por Aaron K 20.05.2009 / 22:58

3 respostas

66

Um hard link tradicionalmente compartilha as mesmas estruturas de sistema de arquivos (inode in unixspeak), enquanto um soft-link é um redirecionamento de nome de caminho.

  • Os hardlinks devem estar no mesmo sistema de arquivos, os softlinks podem cruzar sistemas de arquivos.
  • Os arquivos vinculados permanecem vinculados, mesmo se você mover um deles (a menos que você mova um para outro sistema de arquivos que aciona o mecanismo de cópia e exclusão). Arquivos com link de software quebram se você mover o alvo (original) e, às vezes, quando você move o link (Você usou um caminho absoluto ou relativo? Ele ainda é válido?).
  • Os arquivos vinculados são iguais, enquanto o original é especial em softlinks e a exclusão do original exclui os dados. Os dados não desaparecem até que os todos hardlinks sejam excluídos.
  • Softlinks podem apontar para qualquer destino, mas a maioria dos sistemas de arquivos / OS desabilita diretórios de linkagem para evitar ciclos no gráfico do sistema de arquivos (com exceção das entradas . e .. em diretórios unix que são hard links).
  • Os softlinks podem exigir suporte especial das ferramentas de caminhada do sistema de arquivos. Leia sobre readlink (2) .

(Alguns detalhes trazidos à mente por mat1t . Obrigado.)

    
por 20.05.2009 / 23:12
10

O resumo é que um link simbólico / curto atua como um atalho para a localização do primeiro arquivo, enquanto um link físico é um atalho para o arquivo no disco.

Se você excluir o alvo de um link temporário, o link flexível deixará de funcionar, mas se você excluir uma cópia de um link físico, o arquivo permanecerá no disco até que todos os links físicos sejam removidos. Na verdade, todos os nomes de arquivos são links para o arquivo no disco.

Existem também certas restrições, por exemplo, não acho que você possa criar links de pastas, mas você pode criar links soft deles. Os links suaves também podem apontar para arquivos / pastas em diferentes unidades e partições, enquanto os links físicos não podem.

    
por 20.05.2009 / 23:12
-1

O sistema MS Windows sempre usa links suaves (atalhos). Ou seja, o link simplesmente atua como um atalho apontando para o local do arquivo. Se a localização do original for movida, o link será interrompido. Além disso, o que você faz no atalho (como alterar permissões ou alterar o nome do atalho) não afeta o arquivo real.

Então a questão começou com uma suposição incorreta. Sim, o Vista usa softlinks, mas não é novo, é um atalho do MS.

    
por 18.04.2011 / 20:20