Comment créer un lien symbolique dans Windows?

113

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 actuelles de Windows de l'utilisateur et du serveur qui le prennent en charge?

cowgod
la source
6
Quelqu'un peut-il souligner les différences entre un lien symbolique et un raccourci?
tomjedrz
1
@tomjedrz: si vous utilisez un raccourci, toute API permettant d'ouvrir ce raccourci ouvrira un fichier texte contenant le chemin d'accès au fichier / dossier cible. Si vous utilisez des liens, toute API permettant d'ouvrir ce lien ouvrira le fichier / dossier cible.
Afriza N. Arief
2
Contrairement à ce que tout le monde a dit, je confirme qu'il est possible d'utiliser des liens symboliques dans Windows XP . (Je l'utilise pour installer la base de données Picasa sur le dossier partagé de la VM). Jetez simplement un coup d'oeil à schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html et naviguez jusqu'à la section "Liens symboliques pour Windows XP". HTH
Adam Ryczkowski

Réponses:

109

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 supporte que depuis ou vers NTFS-Partitions. Les futurs systèmes d'exploitation Windows continueront probablement à prendre en charge mklink.

Vous pouvez lire des informations supplémentaires sur cette nouvelle fonctionnalité sur Microsoft TechNet , le blog de Junfeng Zhang ou howtogeek.com .

cowgod
la source
Il serait bon d'ajouter l'URL Technet de David à votre entrée pour qu'elle soit complète.
Michael Pryor
note du site, qu'est-ce qu'une junte (option / J)?
Roy Rico
Une jonction d'annuaire est un type de lien symbolique d'annuaire. support.microsoft.com/?kbid=205524
Lara Dougan
1
NTFS prend en charge les liens (avec différents noms) depuis Windows 2000, mais ils n'étaient utilisés qu'en interne, notamment dans les partages de domaine SYSVOL. certains utilitaires étaient disponibles pour les gérer, mais n'étaient pas intégrés; Vista a présenté l'outil MKLINK et l'utilisation intensive des liens sur les installations Windows par défaut.
Massimo
2
Il serait bon de mentionner fsutilla réponse de @ sascha ci-dessous pour fournir une solution à Windows Server 2003.
Phrogz le
30

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

Saschabeaumont
la source
2
Bonne réponse. Je suis sur WinXP / Win2003 et ai besoin de mklink, mais cela a résolu mon problème pour moi. J'utilise habituellement junction.exe de sysinternals, mais cela ne gère que les répertoires et dans ce cas, j'avais besoin d'un lien de fichier
s3v1
Dommage qu'un lien symbolique ne puisse pas être créé par fsutil, du moins d'après ce que j'ai lu ailleurs. C'est un lien dur et donc pas une réponse à la question.
Vlasec
10

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

PS C:\d\eclipseInstalls> cmd /k mklink /D antRunner 3.4.2
symbolic link created for antRunner <<===>> 3.4.2
Dennis Williamson
la source
1
Cela devrait être / c, pas / k, sinon cmd.exe ne se fermera pas.
dangph
7

Utilisez mklink ou la jonction de Sysinternals (Microsoft). Je pense que mklink fonctionnera sous Windows 2000 et supérieur, mais je ne trouve pas de documentation documentée à ce sujet. La jonction concerne Windows 2000 et les versions ultérieures.

utilisateur2287
la source
1
La commande mklink concerne uniquement Vista et Server 2008 et les versions ultérieures, comme je l’ai indiqué ci-dessus.
4

Cela n’a été vu 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 quasiment comme un lien souple / matériel sous Linux. Les jonctions sont disponibles à partir de Windows 2000 et versions ultérieures. Il suffit donc de copier linkd.exe sur le système cible pour que cela fonctionne.

Romandas
la source
1
Notez que `/ linkd` ne concerne que les répertoires, pas les fichiers.
Phrogz
3

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

Je l'utilise beaucoup. Vous obtenez une option de menu clic droit de lien shell pour créer un point de jonction. Excellent truc.

Stewart Robinson
la source
Cela fonctionnait très bien sous Windows 2003 pour la création d’un lien symbolique vers un dossier situé sur un autre lecteur. Merci!
Phil
Commentaire d’un utilisateur anonyme, modifié à l’origine dans la réponse: "Remarque: Pour que XP fonctionne, il doit utiliser une partition NTFS, et non pas FAT ou FAT32. Voir aumha.org/win5/a/ntfscvt.php pour savoir comment procéder. convertir en NTFS ".
squillman
2

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


la source
Cool, jamais connu à propos de cette fonctionnalité avant, merci pour le lien, pourrait être tellement utile !!!
Marc-Andre R.
1

Pour vous assurer que vos liens fonctionnent, vous pouvez vérifier la configuration de votre serveur. Des liens peuvent être créés, mais si vous n'utilisez pas le paramètre symlinkevaluation dans la commande suivante, vos liens risquent de 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.

utilisateur906489
la source