Quais são os vários tipos de links no Windows? Como eu os crio?


Respostas:


57

Observe que a única diferença infeliz é que você precisa de direitos de administrador para criar links simbólicos. IE, você precisa de um prompt elevado. (Uma solução alternativa é que o SeCreateSymbolicLinkPrivilege pode ser concedido a usuários normais via secpol.msc.)

Nota na terminologia: os atalhos do Windows não são chamados de "links simbólicos"; eles são links de shell , pois são simplesmente arquivos que o shell do Windows Explorer trata especialmente.


Links simbólicos: como criá-los no sistema de arquivos NTFS?

O Windows Vista e versões posteriores suportam links simbólicos no estilo Unix em sistemas de arquivos NTFS. Lembre-se de que eles também seguem a mesma resolução de caminho - links relativos são criados em relação à localização do link, não ao diretório atual. As pessoas costumam esquecer isso. Eles também podem ser implementados usando um caminho absoluto; Por exemplo, c: \ windows \ system32 em vez de \ system32 (que vai para um diretório system32 conectado ao local do link). Os links
simbólicos são implementados usando pontos de nova análise e geralmente têm o mesmo comportamento que os links simbólicos do Unix.

Para arquivos que você pode executar:

mklink  linkname  targetpath

Para diretórios você pode executar:

mklink / d nome do link  targetpath

Hardlinks: como criá-los em sistemas de arquivos NTFS?

Todas as versões do Windows NT suportam links físicos no estilo Unix em sistemas de arquivos NTFS. Usando o mklink no Vista e superior:

mklink / h linkname  caminho do destino

Para Windows 2000 e XP, use fsutil.

fsutil hardlink criar linkname  caminho de destino

Eles também funcionam da mesma maneira que os links físicos do Unix - várias entradas da tabela de arquivos apontam para o mesmo inode .


Junções de diretório: como criá-los em sistemas de arquivos NTFS?

O Windows 2000 e versões posteriores suportam junções de diretório em sistemas de arquivos NTFS. Eles são diferentes dos links simbólicos, pois são sempre absolutos e apenas apontam para diretórios, nunca para arquivos.

mklink / j linkname  caminho do destino

Nas versões que não possuem mklink, faça o download junctionno Sysinternals:

junção  linkname  targetpath

As junções são implementadas usando pontos de nova análise .


Como montar um volume usando um ponto de nova análise no Windows?

Para completar, no Windows 2000 e posterior , os pontos de nova análise também podem apontar para volumes , resultando em montagens de disco persistentes no estilo Unix :

mountvol  ponto de montagem \\? \ Volume { volumeguid }

GUIDs de volume são listados por mountvol; eles são estáticos, mas apenas dentro da mesma máquina.


Existe uma maneira de fazer isso no Windows Explorer?

Sim, você pode usar a extensão do shell Link Shell Extension, o que facilita muito a criação dos links descritos acima. Você pode encontrar os downloads na parte inferior da página .

O sistema de arquivos NTFS implementado no NT4, Windows 2000, Windows XP, Windows XP64 e Windows7 oferece suporte a um recurso conhecido como links físicos (aqui referidos como Hardlinks ). Os hardlinks fornecem a capacidade de manter uma única cópia de um arquivo e, ainda assim, aparecer em várias pastas (diretórios). Eles podem ser criados com o comando POSIX ln incluído no Windows Resource Kit, o utilitário de comando fsutil incluído no Windows XP ou o meu utilitário de linha de comando ln.exe .

A extensão permite que o usuário selecione um ou mais arquivos ou pastas e, com o mouse, conclua a criação dos Links necessários - Hardlinks, Junções ou Links Simbólicos ou, no caso de pastas, para criar Clones que consistam em Links Físicos ou Simbólicos. O LSE é suportado em todas as versões do Windows compatíveis com NTFS versão 5.0 ou posterior, incluindo Windows XP64 e Windows7. Hardlinks, junções e links simbólicos NÃO são suportados em sistemas de arquivos FAT, nem o processo de Clonagem e Cópia Inteligente é suportado em sistemas de arquivos FAT.

A fonte pode ser simplesmente selecionada usando o menu do botão direito.

E, dependendo do que você escolheu , clique com o botão direito do mouse em uma pasta de destino e obtenha um menu com opções.

Isso facilita a criação de links. Para um guia completo , leia a documentação do LSE .

Os downloads podem ser encontrados na parte inferior da página .

URLs MSDN relevantes:


40

Nesta resposta, tentarei descrever quais são os diferentes tipos de links no gerenciamento de diretórios e por que são úteis e quando podem ser usados. Ao tentar alcançar uma certa organização em seus volumes de arquivo, conhecer os vários tipos diferentes e criá-los é um conhecimento valioso.

Para obter informações sobre como um determinado link pode ser feito, consulte grawity 's resposta .

O que é um link?

Um link é um relacionamento entre duas entidades; no contexto do gerenciamento de diretório, um link pode ser visto como um relacionamento entre as duas entidades a seguir:

  1. Tabela de Diretórios

    Esta tabela controla os arquivos e pastas que residem em uma pasta específica.

    Uma tabela de diretórios é um tipo especial de arquivo que representa um diretório (também conhecido como pasta). Cada arquivo ou diretório armazenado nele é representado por uma entrada de 32 bytes na tabela. Cada entrada registra o nome, extensão, atributos (archive, diretório, oculto, somente leitura, sistema e volume), a data e hora da última modificação, o endereço do primeiro cluster dos dados do arquivo / diretório e, finalmente, o tamanho de o arquivo / diretório.

  2. Cluster de Dados

    Mais especificamente, o primeiro cluster do arquivo ou diretório.

    Um cluster é a menor quantidade lógica de espaço em disco que pode ser alocada para manter um arquivo.

O aspecto especial desse relacionamento é que ele permite ter apenas um cluster de dados, mas muitos links para esse cluster, permitindo mostrar dados como estando presentes em vários locais. No entanto, existem várias maneiras de fazer isso e cada método tem seus próprios efeitos.

Para ver de onde isso se origina, vamos voltar ao passado ...

O que é um link de shell e por que nem sempre é suficiente?

Embora possa não parecer familiar, todos conhecemos este! Os atalhos de arquivo são, sem dúvida, a maneira mais frequentemente usada de vincular arquivos. Eles foram encontrados em algumas das versões anteriores do Windows 9x e existem há um longo tempo.

Isso permite que você crie rapidamente um atalho para qualquer arquivo ou pasta, eles são feitos especificamente para armazenar informações extras ao longo do link, como por exemplo, o diretório de trabalho em que o arquivo é executado, os argumentos a serem fornecidos ao programa e as opções como maximizar o programa.

A desvantagem dessa abordagem de vinculação é exatamente isso: as informações extras exigem que esse tipo de link tenha um cluster de dados por conta própria para conter esse arquivo. O problema, então, não é necessariamente o fato de ocupar espaço em disco, mas o fato de o link ser acessado indiretamente, pois o Data Cluster precisa primeiro ser solicitado antes de chegarmos ao link real. Se o caminho referido no link real desaparecer, o link do shell ainda existirá.

Se você operasse no arquivo que está sendo referido, primeiro teria que descobrir em qual diretório o arquivo está. Você não pode simplesmente abrir o link em um editor, pois estaria editando o .lnkarquivo, e não o arquivo ao qual está vinculado. Isso bloqueia muitos casos de uso possíveis para links de shell.

Como um link de ponto de junção tenta resolver esses problemas?

Um ponto de junção NTFS permite criar um link simbólico para um diretório nas unidades locais , de maneira que ele se comporte exatamente como um diretório normal. Portanto, você tem um diretório de arquivos armazenados no disco, mas pode acessá-lo em vários locais.

Ao remover o ponto de junção, o diretório original permanece. Ao remover o diretório original, o ponto de junção permanece. É muito caro enumerar o disco para verificar se há pontos de junção que precisam ser excluídos. Esta é uma desvantagem como resultado de sua implementação.

O ponto de junção NTFS é implementado usando pontos de nova análise NTFS , que são objetos do sistema de arquivos NTFS introduzidos no Windows 2000.

Um ponto de nova análise NTFS é um tipo de objeto do sistema de arquivos NTFS. Os pontos de nova análise fornecem uma maneira de estender o sistema de arquivos NTFS adicionando informações extras à entrada do diretório, para que um filtro do sistema de arquivos possa interpretar como o sistema operacional tratará os dados. Isso permite a criação de pontos de junção, links simbólicos NTFS e pontos de montagem de volume, e é um recurso essencial para o Sistema de Armazenamento Hierárquico do Windows 2000.

É isso mesmo, a invenção do ponto de nova análise nos permite fazer maneiras mais sofisticadas de vincular.

O ponto de junção NTFS é um link simples, o que significa que apenas vincula ao nome do arquivo. Isso significa que sempre que o link é excluído, os dados originais permanecem intactos ; mas, sempre que os dados originais forem excluídos, os dados originais desaparecerão .

Também posso vincular arquivos de software? Existem links simbólicos ?

Sim, quando o Windows Vista apareceu, eles decidiram estender a funcionalidade do (s) objeto (s) do sistema de arquivos NTFS, fornecendo o link simbólico NTFS , que é um link flexível que atua da mesma maneira que o ponto de junção NTFS. Mas pode ser aplicado a arquivos e diretórios.

Eles compartilham novamente o mesmo comportamento de exclusão; em alguns casos de uso, isso pode ser um problema para os arquivos, pois você não deseja ter uma cópia inútil de um arquivo por aí. É por isso que também a noção de links físicos foi implementada.

O que é um duro link e como ele se comporta em oposição a soft links?

Os links físicos não são objetos do sistema de arquivos NTFS, mas são um link para um arquivo (em detalhes, eles se referem à entrada MFT, pois armazena informações adicionais sobre o arquivo real). A entrada MFT possui um campo que lembra a quantidade de tempo em que um arquivo está sendo vinculado. Os dados ainda estarão acessíveis enquanto existir pelo menos um link que aponte para ele.

Portanto, os dados não dependem mais de uma única entrada MFT para existir . Enquanto houver um vínculo rígido, os dados sobreviverão. Isso evita a exclusão acidental de casos em que não se deseja lembrar onde estava o arquivo original.

Você poderia, por exemplo, criar uma pasta com "filmes que ainda tenho que assistir", além de uma pasta "filmes que tiro em férias" e uma pasta "filmes favoritos". Os filmes que não são nenhum desses serão excluídos corretamente, enquanto os filmes que forem qualquer um deles continuarão a existir mesmo quando você assistir a um filme.

Para que serve um link de ponto de montagem de volume ?

Algumas pessoas de TI ou de negócios podem não gostar de lembrar ou digitar as diferentes letras de unidade que seu sistema possui. O que M:realmente significa, afinal? Foi música? Filmes? Modelos? Maps?

A Microsoft fez esforços ao longo do ano para tentar migrar usuários para longe do work in drive C:para work in your user folder. Eu poderia, sem dúvida, dizer que os usuários com problemas de permissão e UAC são aqueles que não seguem essas diretrizes, mas isso não os faz pensar:

Por que você deveria estar visualizando qualquer coisa, menos seus arquivos pessoais, diariamente?

Os pontos de montagem de volume são a maneira profissional de TI de não ser limitado por letras de unidade, além de ter uma estrutura de diretórios que faz sentido para eles, mas ...

Meus arquivos estão em lugares diferentes. Posso usar links para reuni-los?

No Windows 7, as bibliotecas foram introduzidas exatamente para esse fim. Feito com arquivos de música que estão localizados nesta pasta e nessa pasta e nessa pasta . De um nível mais baixo, uma biblioteca pode ser visualizada como vários links. Eles são novamente implementados como um objeto do sistema de arquivos que pode conter várias referências. É essencialmente uma relação de um para muitos ...

Meu cérebro explode ... Você pode resumir quando usá-los?

  • Links de atalho: use-os quando precisar de acesso rápido a um executável ou site, a um arquivo que você inicia com freqüência ou a especificar parâmetros para um aplicativo e um arquivo em lotes é um exagero. Não o utilize quando pretender manipular o arquivo através do seu atalho.

  • Pontos de junção: use-os quando quiser que um diretório esteja em outro lugar; isso permite que você mova os diretórios para unidades mais rápidas ou lentas, sem perder a capacidade de acessar o caminho original. Outro uso é quando você deseja acessar um diretório por outro caminho. Eles não podem ser usados ​​para vincular a um compartilhamento.

  • Links flexíveis: use-os quando um link de atalho não for suficiente; geralmente é usado quando você pretende manipular o arquivo por meio dele. Ou quando você deseja que o arquivo esteja em uma unidade mais rápida ou mais lenta, sem perder a capacidade de acessar o caminho original.

  • Links físicos: use-os quando desejar que um arquivo seja excluído quando todos os links físicos forem removidos. Isso não pode ser usado para pastas.

  • Pontos de montagem de volume: use-os quando ficar sem letras de unidade ou quando achar mais viável acessar um volume por um caminho e não por uma letra de unidade.

  • Bibliotecas: use-as quando você tiver o mesmo tipo de arquivo em vários locais diferentes e precisar que elas estejam juntas. Isso suporta unidades removíveis, facilitando a exibição das pastas nas unidades removíveis entre as do computador quando você insere isto. Você pode clicar nas pastas individuais da árvore de pastas abaixo da biblioteca na visualização em árvore, o que facilita a movimentação de arquivos entre os dois.


As bibliotecas são no nível do shell como links de atalho, certo?
Medinoc 29/09/14

@ Medinoc: Não, eles agregam o conteúdo de vários locais.
Tamara Wijsman

11
Mas eles fazem isso no nível do sistema de arquivos de forma que, digamos, cmd.exe e dirpossam listar o conteúdo agregado (nesse caso, onde estão no sistema de arquivos, não consigo encontrá-lo) ou apenas agregam no nível do shell, onde apenas o Windows Explorer e as caixas de diálogo de arquivo podem mostrá-los? Fiquei com a impressão de que era o último, mas o seu "não" desafia este a menos que eu escrevi a minha pergunta errada (eu quis dizer "As bibliotecas são shell de nível como links de atalho são , certo?" ).
Medinoc 30/09/14

@ Medinoc: São arquivos em C:\Users\{User}\AppData\Roaming\Microsoft\Windows\Libraries.
Tamara Wijsman

11
@Pacerier: o Windows usa o sistema de localização antigo, onde você pode, por exemplo, mover uma pasta de música de suas propriedades. As bibliotecas são uma nova adição, que o próprio sistema operacional mal usa como resultado. Portanto, duvido que algo se rompa; como eles são destinados exclusivamente para fins de exibição, ...
Tamara Wijsman

8

Se você estiver no Windows Vista ou posterior e tiver direitos de administrador, verifique o comando mklink (é uma ferramenta de linha de comando). Não sei ao certo como é o link simbólico, pois o Windows fornece o pequeno ícone de seta que coloca em atalhos, mas um teste rápido do bloco de notas ++ em um arquivo de texto sugere que ele pode funcionar para o que você está procurando.

Você pode executar o mklink sem argumentos para obter um guia de uso rápido.

Espero que ajude.


O mklink usa pontos de junção NTFS (acredito que é assim que eles são chamados) para duplicar mais ou menos perfeitamente o vínculo no estilo Unix. No entanto, o Windows pode dizer que é uma junção, portanto, ele fornece o ícone de seta tradicional. iirc, você pode removê-lo com algumas manobras de registro, mas não me lembro onde.
Jcrawfordor 18/10

2
@jcrawfordor: As estruturas do disco são "pontos de nova análise" . Junções e links simbólicos são dois tipos diferentes de pontos de nova análise; pontos de montagem de volume são terceiros.
grawity

11
E sim, os mklinklinks simbólicos feitos pelo @Gemini foram implementados especificamente para funcionar como os do Unix .
grawity

Obrigado grawity, pela confirmação. Eu nunca joguei ao redor com eles muito, então eu só queria incluir disclaim.h;)
GeminiDomino

2

este artigo tem algumas distinções

uma distinção importante é que, em certo sentido, as junções pré-win7 eram um pouco inseguras, pois excluí-las excluiria o diretório de destino.

http://cects.com/overview-to-understanding-hard-links-junction-points-and-symbolic-links-in-windows/

Um ponto de junção nunca deve ser removido no Win2k, Win2003 e WinXP com o Explorer, os comandos del ou del / s ou com qualquer utilitário que percorra diretórios recursivamente, pois eles excluirão o diretório de destino e todos os seus subdiretórios. Em vez disso, use o comando rmdir, o utilitário linkd ou fsutil (se estiver usando o WinXP ou superior) ou uma ferramenta de terceiros para remover o ponto de junção sem afetar o destino. No Vista / Win7, é seguro excluir pontos de junção com o Explorer ou com os comandos rmdir e del.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.