Quais são os outros usos de hard links, pontos de junção e links simbólicos?

4

Há muitas respostas sobre por que links, pontos de junção e links simbólicos são úteis.

Eu entendo que os pontos de junção são suportados a partir do Vista e são descritos como "hardlinks de diretório" (mesmo que sejam links simbólicos de diretório e não se assemelhem a hardlinks para diretórios). Estou certo sobre isso?

Em uma nota relacionada, por que não podemos oferecer suporte a hardlinks de diretório? Isso afetaria a integridade do sistema de arquivos? Se sim, como?

Eu entendo que os links simbólicos de diretório estão lá apenas no Windows para fornecer interoperabilidade / compatibilidade com os sistemas de arquivos UNIX.

Entendo que os links para arquivos permitem a manutenção de várias cópias de um arquivo sem armazenamento adicional. Eles são úteis caso você apague acidentalmente um dos hardlinks ou tenha acesso rápido aos arquivos armazenados em caminhos muito longos.

Mas existem outros usos importantes que estou perdendo?

    
por Dhiwakar Ravikumar 21.10.2014 / 13:58

1 resposta

3

Na verdade, as junções existem desde o Windows 2000; são links simbólicos que apareceram no Vista. (Bem, falando estritamente, eles apareceram no XP, mas ntfs.sys não expôs a funcionalidade até o Vista.) Nem as junções nem os links simbólicos são similares aos hard links; os dois são representados como objetos de sistema de arquivos diferentes, enquanto links de hardware são nomes diferentes para o mesmo objeto de arquivo. Esse último fato pode ser verificado observando que as ACLs de todos os links de um arquivo são sempre as mesmas.

Eu não acho que os links simbólicos estejam disponíveis apenas para compatibilidade com Linux / Unix. Os links simbólicos para pastas são mais versáteis do que junções:

  • Os links simbólicos podem apontar para caminhos relativos. Embora mklink /j ..\..\relative\stuff seja bem-sucedido, a junção resultante acaba usando o caminho absoluto resultante. (Veja a saída de dir /a .)
  • Os links simbólicos podem apontar para volumes remotos ou caminhos UNC. Junções não podem.

Os links rígidos de diretório são teoricamente possíveis, mas permitir que eles abrissem uma lata de worms - os diretórios seriam capazes de se conter literalmente. Muitos aplicativos que examinam recursivamente o sistema de arquivos seriam interrompidos porque não haveria como distinguir um loop de uma árvore realmente profunda e de nome estranho. (Com links simbólicos e junções, as entradas são distinguíveis.) Os aplicativos precisariam interferir na escrituração de NTFS e, basicamente, ninguém faz isso. Os links diretos também abrem a possibilidade de um diretório ter dois (ou mais!) Pais reais. Em suma, quebrar o modelo não-cíclico da estrutura de diretórios cria um grande volume de complicações. Outras leituras: esta pergunta sobre Unix e Linux (sistema operacional diferente, eu sei, mas o mesmo raciocínio se aplica).

Acho que você descobriu os grandes usos de links e junções simbólicas. Um uso comum adicional no Windows é montar uma unidade como um diretório em uma unidade existente. (Consulte Alterar a letra e os caminhos da unidade do Gerenciamento de disco .

    
por 09.02.2016 / 15:52