48 votes

Comment afficher les liens physiques d'un fichier sous Windows?

J'ai trouvé une description des liens durs et des jonctions dans Windows, cependant j'aimerais savoir, à partir de l'interface utilisateur de Windows ou de l'invite de commandes, comment je peux voir les liens durs d'un fichier ou dossier particulier?

60voto

John K Points 1623

Le fsutil utilitaire inclus dans Windows XP et versions ultérieures. Exemple :

fsutil.exe hardlink list C:\Windows\System32\notepad.exe

Résultats de l'exemple (à partir de Windows 7) :

\Windows\System32\notepad.exe
\Windows\notepad.exe
\Windows\winsxs\amd64_microsoft-windows-notepadwin_31bf3856ad364e35_6.1.7600.16385_none_9ebebe8614be1470\notepad.exe
\Windows\winsxs\amd64_microsoft-windows-notepad_31bf3856ad364e35_6.1.7600.16385_none_cb0f7f2289b0c21a\notepad.exe

11voto

antonio Points 233

fsutil nécessite des privilèges système élevés. Si vous avez juste besoin de lire, et non pas de créer, des liens c'est très contraignant.

Microsoft propose également gratuitement findlinks, qui est beaucoup plus convivial au niveau de la syntaxe, donne des détails supplémentaires et ne nécessite pas de privilèges spéciaux.

Jugez par vous-même le même fichier, comme mentionné dans le post de John K, analysé avec findlinks:

findlinks c:\windows\notepad.exe

FindLinks v1.0 - Localiser les liens physiques de fichiers
Copyright (C) 2011 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\windows\notepad.exe
        Index:  0x000037A6
        Liens:  3

Fichiers liés:
c:\Windows\System32\notepad.exe
c:\Windows\winsxs\amd64_microsoft-windows-notepadwin_31bf3856ad364e35_6.1.7600.16385_none_9ebebe8614
be1470\notepad.exe
c:\Windows\winsxs\amd64_microsoft-windows-notepad_31bf3856ad364e35_6.1.7600.16385_none_cb0f7f2289b0c
21a\notepad.exe

EDIT

Alors que la commodité de findlinks pourrait persister,

à partir de la version Windows 10 Insiders build 14972, les liens symboliques peuvent être créés sans avoir besoin d'élever la console en tant qu'administrateur.

Voir blogs.windows.com/windowsdeveloper

On peut également observer que maintenant fsutil.exe ne nécessite plus de privilèges élevés.

L'objectif de Microsoft est d'aligner la fonctionnalité des liens symboliques sur les normes Linux, où ils sont très courants.

Merci à pinjaliina d'avoir souligné ceci.

2voto

Arseniy Points 21

Non directement ce dont vous avez besoin mais peut encore être utile pour un tel objectif lorsqu'il est utilisé de manière astucieuse:
FINDDUPE, un utilitaire en ligne de commande autonome hébergé à l'adresse http://www.sentex.net/~mwandel/finddupe/, possède une fonctionnalité secondaire, qui permet de répertorier tous les hardlinks dans un répertoire de manière récursive avec l'appel suivant:
finddupe -listlink

Voici un exemple de ce que l'on obtient en sortie:

Groupe de hardlinks, 2 des 2 instances de hardlinks trouvées dans l'arborescence de recherche:
  ".\1"
  ".\_1"

Nombre de groupes de hardlinks trouvés: 1

REMARQUE: Il existe un certain nombre de projets portant un nom similaire sur SourceForge, mais aucun n'héberge réellement l'utilitaire ci-dessus pour le moment.

1voto

Massimo Points 67633

Le outil FindLinks de Sysinternals devrait être exactement ce dont vous avez besoin.

findlinks C:\Windows\notepad.exe

0voto

TomRoche Points 141

Le ln utilitaire en ligne de commande par Hermann Schinagl devrait fonctionner :

ln --list

Il y a aussi une extension de shell.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X