web-dev-qa-db-fra.com

Comment créer un lien symbolique dans Windows?

Windows Vista a ajouté la possibilité de créer des liens symboliques vers des fichiers et des répertoires. Comment créer un lien symbolique et quelles sont les versions client et serveur actuelles de Windows qui le prennent en charge?

113
cowgod

Vous pouvez créer un lien symbolique avec l'utilitaire de ligne de commande mklink.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

Les liens symboliques via mklink sont disponibles depuis Windows Vista et Windows Server 2008. Sous Windows XP et Windows Server 2003, vous pouvez utiliser

fsutil hardlink create <destination filename> <source filename>

Selon msdn.Microsoft , les liens symboliques ne sont PAS pris en charge sur FAT16/32 et exFAT. Il semble que Windows ne les prend en charge que depuis ou vers les partitions NTFS. Les futurs systèmes d'exploitation Windows continueront probablement de prendre en charge mklink.

Vous pouvez lire plus d'informations sur cette nouvelle fonctionnalité sur Microsoft TechNet , blog de Junfeng Zhang ou howtogeek.com .

110
cowgod

Sous Windows XP vous pouvez utiliser fsutil (intégré au système d'exploitation) pour créer un lien dur

 fsutil hardlink create c:\foo.txt c:\bar.txt

Gardez à l'esprit que fsutil ne fonctionnera que si les deux sont sur le même lecteur

30
saschabeaumont

Une petite chose, si vous utilisez Powershell, mklink ne fonctionne pas directement, exécutez-le comme ceci:

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2
10
francisu

Utilisez mklink ou junction from Sysinternals (Microsoft). Je crois mklink fonctionnera dans Windows 2000 et supérieur, mais je ne trouve aucune documentation matérielle à ce sujet. junction est pour Windows 2000 et supérieur.

7
user2287

Je n'ai vu cela dans aucune des réponses, mais linkd.exe (dans le kit de ressources Windows 2003 ici ) vous permet de créer des jonctions, qui fonctionnent à peu près comme un lien logiciel/dur sous Linux . Les jonctions sont disponibles à partir de Windows 2000 et versions ultérieures, il vous suffit donc de copier linkd.exe sur le système cible et cela devrait fonctionner.

4
romandas

Si vous utilisez encore Windows, comme XP, 2000, 2003, etc., essayez Lien NTFS.

Je l'utilise beaucoup. Vous obtenez une option de menu contextuel du lien Shell pour créer un point de jonction. Excellent truc.

3
Stewart Robinson

Voir TechNet entrée. Je crois que c'est une fonctionnalité Vista/Server 2008 et plus.

2
user1797

Pour vous assurer que vos liens fonctionnent, vous pouvez vérifier la configuration de votre serveur. Des liens peuvent être créés, mais à moins que vous n'utilisiez le paramètre d'évaluation de lien symbolique dans la commande suivante, vos liens peuvent ne pas fonctionner.

fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1

Voir aussi http://technet.Microsoft.com/en-us/library/cc754077%28v=ws.10%29.aspx . Par défaut, seules les options locales sont activées.

1
user906489