Créer des liens symboliques sous Windows

Mars 2013

Les liens symboliques existent sur le système d'exploitation UNIX (Linux, Mac OS...) depuis longtemps, il s'agit d'une fonction du système de fichier qui permet de créer des liens entre les dossiers, qui sont complément transparent pour les applications.

Imaginons par exemple que vous ayez un fichier sur votre bureau : C:\Users\Vincent\Desktop\fichier.txt. On peut créer un lien symbolique vers ce fichier, à la racine du disque : C:\fichier.txt.

En apparence ce sont 2 fichiers différents (car ils ont des emplacements différents sur le disque), mais en réalité c'est exactement le même fichier : si vous modifiez l'un, vous modifiez l'autre.

Windows et plus précisément son système de fichier : NTFS, gère aussi les liens symboliques depuis Windows 2000, sauf que ça ne s'appelle pas tout à fait pareil, microsoft fait une distinction entre les fichiers et les dossiers :

  • hard link : concerne les fichiers et les dossiers.
    Sur les dossiers on parle de symlink (lien symbolique)
    Un lien dur masque la nature réelle du fichier, rien n'indique qu'il s'agisse d'un lien.
  • junction (aussi appelé soft link) : concerne les dossiers.
    Une jonction est moins bas niveau qu'un lien symbolique, mais les applications qui utilisent le système de fichiers peuvent savoir qu'il s'agit d'une jonction. On peut par exemple le voir avec la commande dir /a, ou avec des explorateurs de fichier comme XYPlorer.
    Les jonctions sont aussi plus flexibles que les symlink, car on peut créer une jonction sur une autre partition, et même sur un emplacement réseau.

Différence entre un raccourci et un lien symbolique

Il ne faut pas confondre tout ceci avec les raccourcis (aussi appelé shortcut) qui se présentent sous la forme de fichiers .lnk. Il ne s'agit que de simples fichiers classiques dont le contenu est utilisé et interprété par l'explorateur windows (explorer.exe) pour ouvrir un fichier ou un dossier spécifique.

Les liens symboliques opèrent au niveau du système de fichier, et pas au niveau application comme les raccourcis. En plus, on peut utiliser les liens symboliques de façon totalement transparente en ligne de commande.

Créer un lien symbolique sur Windows 7

Windows Vista, Windows 7 et Windows 8 sont fournis avec un utilitaire en ligne de commande dédié à la création de lien symbolique. Ce programme s'appelle mklink.exe.

Voici comment il s'utilise :

mklink /D /H /J [Lien] [Cible]

Les 3 modes correspondent respectivement à :

  • /H : créer un hard link (sur un fichier)
  • /D : créer un symlink (hard link sur un dossier)
  • /J : créer une jonction (sur un dossier)

Exemple :

C:\>mklink /H "fichier.txt" "C:\Users\Vincent\Desktop\fichier.txt"
> Liaison permanente créée pour fichier.txt <<===>> C:\Users\Vincent\Desktop\fichier.txt

C:\>mklink /J "dossier" "C:\Users\Vincent\Desktop\dossier"
> Jonction créée pour dossier <<===>> C:\Users\Vincent\Desktop\dossier

mklink créé le lien dans le répertoire courant (ici : C:).

Créer un lien symbolique sur Windows XP

Sur Windows XP et Windows 2000, le système de fichiers (NTFS) gère les liens symboliques, sauf que microsoft n'a inclus aucun outil qui permet d'en créer ou d'en supprimer !

Il faut donc télécharger et installer un programme pour faire ça. J'en connais 2 :

  • Windows Resource Kit
    Il s'agit d'un pack d'utilitaires développés par Microsoft (qui le vendait au début, mais maintenant il est gratuit), dont linkd.exe qui sert à créer des jonctions NTFS. Il y a aussi d'autres outils, comme delrp.exe qui sert à supprimer les jonctions NTFS.
    http://www.microsoft.com/fr-fr/download/details.aspx?id=18546
  • Junction
    Cet outil a été créé par un développeur indépendant, il sert juste à créer des jonctions, et rien d'autre.
    Pour l'installer, il suffit de télécharger le zip (lien ci-dessous) et de placer junction.exe dans le dossier C:\WINDOWS\system32 (qui appartient au PATH, et qui sera donc reconnu de n'importe où en ligne de commande).
    http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

Cette page peut vous intéresser : incliner un texte sur excel à lire tout de suite !

Junction est très bien (très léger, pas d'installation), exemple :

C:\>junction "C:\dossier" "C:\Users\Vincent\Desktop\dossier"

Le logiciel XYPlorer (explorateur de fichiers) permet de créer des liens symboliques via son interface graphique, depuis la version 9.90. Pratique pour ceux qui galèrent avec la ligne de commande.

Supprimer un lien symbolique

Sur Windows 7, pour supprimer une jonction ou un hard link, il suffit de supprimer le fichier comme n'importe quel fichier (via la corbeille).

Par contre il faut faire attention, car si un fichier n'a plus aucun lien qui pointe vers lui, il est alors supprimé (c'est même comme ça que fonctionne la commande unlink sous UNIX).

À quoi sert un lien symbolique ?

Cette technique présente différents avantages, cela peut être utile pour certaines applications qui ne permettent pas de modifier les chemins de dossier utilisés (par exemple : un logiciel qui télécharge dans un dossier prédéfini qu'il est impossible de modifier dans les préférences).

Windows les utilise aussi pour assurer la rétrocompatibilité, avec des jonctions qui émulent les anciens dossiers spécifiques de Windows comme All Users / ProgramData ou Documents and Settings / Users.

On peut aussi s'en servir pour faire fonctionner les liens symboliques avec Apache sous windows (directive FollowSymLinks).

Découvrez ce tutoriel photoshop : le petit chaperon rouge à lire tout de suite !

0 commentaire
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré