it-swarm-pt.tech

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

Ouvi dizer que agora você pode criar links flexíveis no Vista também . Então, qual é a diferença entre um link flexível (simbólico) e um link físico no UNIX/Linux/Vista?

Existem vantagens em usar um sobre o outro? Ou eles apenas servem a dois propósitos distintos?

59
Aaron K

Tradicionalmente, um link físico compartilha as mesmas estruturas de sistema de arquivos (inode em unixspeak), enquanto um link físico é um redirecionamento de nome de caminho.

  • Os hardlinks devem estar no mesmo sistema de arquivos, os softlinks podem cruzar os sistemas de arquivos.
  • Os arquivos vinculados permanecem vinculados, mesmo se você mover um deles (a menos que você mude um para outro sistema de arquivos, acionando o mecanismo de copiar e excluir). Os arquivos com vínculo com software são interrompidos se você mover o destino (original) e, às vezes, quando você move o link (você usou um caminho absoluto ou relativo? Ainda é válido?).
  • Os arquivos com link físico são co-iguais, enquanto o original é especial em softlinks, e a exclusão do original exclui os dados. Os dados não desaparecem até que todos os hardlinks sejam excluídos.
  • Os softlinks podem apontar para qualquer destino , mas a maioria dos sistemas operacionais/sistemas de arquivos não permite diretórios com links físicos para evitar ciclos no gráfico do sistema de arquivos (com exceção do . e .. entradas em diretórios unix que são links físicos).
  • Os softlinks podem exigir suporte especial das ferramentas de caminhada do sistema de arquivos. Leia em readlink (2) .

(Alguns detalhes são lembrados por mat1t . Obrigado.)

68

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

Se você excluir o destino de um link virtual, o link virtual 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. Com efeito, todos os nomes de arquivos são hardlinks para o arquivo no disco.

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

10
Matthew Steeples