Como posso encontrar links físicos no Windows?


33

Eu criei alguns links físicos no meu sistema de arquivos do Windows 7 usando o mklink. Foi há algum tempo e não me lembro ao certo onde ou quais arquivos. Quando eu uso o Explorer, todos os arquivos têm a mesma aparência. Quando eu uso a linha de comando e digito "dir", todos parecem iguais.

Como encontro links físicos? Ou como determino se um arquivo específico é um link físico?

Respostas:


33

Todos os arquivos são links físicos, com contagem de links de pelo menos 1.

É por isso que os arquivos têm a mesma aparência. Eles são iguais. O que você parece estar procurando são arquivos nos quais há mais de um link para o arquivo. Há muito pouco que distingue um arquivo com uma contagem de links maior que um de um arquivo com uma contagem de links de um… exceto a contagem de links (e algum comportamento estranho em relação aos atributos e carimbos de data).

E isso é fácil de verificar com o findcomando que está no kit de ferramentas utilitárias SFUA da Microsoft , que é executado no Subsistema para Aplicativos Baseados em Unix :

encontrar . -links +1


9
apenas como uma nota, cygwin / bin / find também funciona. Obrigado!
Arcyqwerty 18/09/12

6
Só para esclarecer que a "Microsoft find" que está sendo referenciada na solução aqui não é o Windows 7. padrão instalado. Você precisa baixar e instalar uma nova Microsoft find. Então você pode usar esse findutilitário. Ou instale o findcomando do Cygwin como @arcyqwerty (que provavelmente terá melhor suporte a longo prazo).
Trevor Boyd Smith

2
Também pode usar o built-in fsutil hardlink list filename. (veja a resposta de Sergey )
Svish

28

No Windows 7, use o comando:

fsutil hardlink list MyFileName.txt

Ele lista todos os hardlinks para arquivar com o nome MyFileName.txt.


Observe que você precisa ser administrador para executar o fsutil.
Alastair Maw

2
@AlastairMaw Em pelo menos o Windows 10, você não precisa ser um administrador para executar esse comando específico. Ou funciona para ser administrador sem o UAC? (isto é, apenas o grupo sem elevação real)
Paul Stelian

9

Infelizmente, não há como o sistema operacional encontrar todos os seus hardlinks sem olhar para cada arquivo.

Para o Explorer, você pode baixar a muito útil Extensão Shell de Link , que sobrepõe arquivos com hardlinks com uma seta vermelha semelhante a um atalho.

Também facilita a criação de links físicos, links simbólicos e junções através do menu de contexto do Explorer.

Conversas bônus:

Tecnicamente, todos os arquivos são hardlinks. Assim, você está realmente procurando arquivos com mais de um hardlink.


11
Na verdade é. Veja a resposta de Sergey .
Svish

11
A resposta de Sergey funciona para a segunda parte da pergunta, mas não a primeira.
surfasb

3

use finddupe :

finddupe -listlink c:\photos

-listlink Coloca o finddupe no modo de localização do hardlink. Nesse modo, o finddupe listará quais grupos de arquivos estão vinculados juntos. Todas as instâncias vinculadas encontradas de um arquivo são mostradas juntas. No entanto, o finddupe pode encontrar apenas instâncias do arquivo com link físico que estão dentro do caminho da pesquisa.
Shayan

3

 Uma maneira simples de verificações pontuais: os atributos do arquivo estão mudando juntos?

Se você quiser testar se os arquivos Ae Bsão ligações diretas para o mesmo conteúdo e você não deseja instalar ou executar qualquer coisa, abra as Propriedades janela de arquivo Ae de alternância, por exemplo, a sua Read-only atributo. Agora abra a janela Propriedades do arquivo Bpara ver se a alteração do atributo (do arquivo A) ocorreu aqui também. Se sim, então a resposta é positiva.

Por que isso funciona? Porque os links físicos relacionados compartilham o mesmo conjunto de atributos de arquivo e carimbos de data e hora.

Dito isto, o mesmo teste pode ser feito com registros de data e hora dos arquivos, mas eles não podem ser alterados tão facilmente quanto o sinalizador somente leitura para executar a verificação.

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.