Ligações e junções rígidas

O sistema de arquivos NTFS oferece suporte a três tipos de links de arquivos: links físicos, junções e links simbólicos. Este artigo é uma visão geral de links físicos e junções. Para obter informações sobre links simbólicos, consulte Criar links simbólicos.

Um link físico é a representação do sistema de arquivos de um arquivo pelo qual mais de um caminho faz referência a um único arquivo no mesmo volume. Para criar um link físico, use a função CreateHardLinkA .

Quaisquer alterações feitas em um arquivo vinculado são instantaneamente visíveis para os aplicativos que o acessam por meio dos links que fazem referência a ele. Os atributos no arquivo são refletidos em cada link físico para esse arquivo, e as alterações nos atributos desse arquivo se propagam para todos os links físicos. No entanto, o tamanho da entrada de diretório e as informações de atributo do arquivo são visivelmente atualizados somente no link por meio do qual a alteração foi feita. Por exemplo, se você limpar o sinalizador de atributo somente leitura em um link físico específico para poder excluir esse link físico e houver vários links físicos para o arquivo, os outros links físicos exibirão que o atributo somente leitura ainda está definido, o que não é verdade. Para alterar o arquivo de volta para o estado somente leitura, você deve definir o sinalizador somente leitura no arquivo a partir de um de seus links físicos restantes.

Por exemplo, em um sistema onde C: e D: são unidades locais e Z: é uma unidade de rede mapeada para \\fred\share, as seguintes referências são permitidas como um link físico:

  • C:\dira\ethel.txt Ligado a C:\dirb\dirc\lucy.txt
  • D:\dir1\tinker.txt Ligado a D:\dir2\dirx\bell.txt
  • C:\diry\bob.bak Ligado a C:\dir2\mina.txt

Isso ocorre porque todos os links são arquivos no mesmo volume. Os links físicos não podem fazer referência a diretórios, apenas arquivos, e não podem fazer referência a arquivos em volumes diferentes.

As seguintes referências não são permitidas:

  • C:\dira Ligado a C:\dirb
  • C:\dira\ethel.txt Ligado a D:\dirb\lucy.txt
  • C:\dira\ethel.txt Ligado a Z:\dirb\lucy.txt

Para excluir um link físico, use a função DeleteFileA . Você pode excluir links físicos em qualquer ordem, independentemente da ordem em que eles são criados.

Junções

Uma junção (também chamada de soft link) difere de um link físico porque os objetos de armazenamento aos quais ela faz referência são diretórios separados. Uma junção também pode vincular diretórios localizados em volumes locais diferentes no mesmo computador. Caso contrário, as junções operam de forma idêntica aos links rígidos. As junções são implementadas através de pontos de reparação.

Supondo as mesmas condições na seção Links físicos, as seguintes referências são permitidas como junções:

  • C:\dira Ligado a C:\dirb\dirc
  • C:\dirx Ligado a D:\diry

As referências a seguir não são permitidas porque fazem referência a volumes de rede mapeados ou fazem referência direta a arquivos:

  • C:\dira\one.txt Ligado a C:\dirb\two.txt
  • C:\dir1 Ligado a Z:\dir2

Confira também