FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Qu'est-ce qu'un lien symbolique (Symlink) ? Comment en créer un sous Linux

En tant qu'utilisateur d'ordinateur, si vous deviez définir un raccourci, vous diriez probablement qu'il s'agit d'un pointeur vers un fichier, un dossier ou une application, n'est-ce pas ? C'est exact.

Mais cette courte définition ne raconte pas du tout toute l'histoire. Cela implique que tous les raccourcis sont les mêmes lorsqu'ils ne le sont pas. Vous avez presque une poignée de types de raccourcis. Nous allons nous concentrer sur le lien symbolique ci-dessous. Il est également appelé lien symbolique ou lien symbolique, et nous utiliserons les termes de manière interchangeable.

Voyons ce qu'est un lien symbolique, comment créer un lien symbolique sous Linux ainsi que macOS et Windows, pourquoi vous avez besoin de ce type spécial de raccourci, et plus encore.

Il est vrai qu'un lien symbolique est un fichier de raccourci. Mais c'est différent d'un raccourci standard que, par exemple, un installateur de programme a placé sur votre bureau Windows pour rendre le programme plus facile à exécuter.

Bien sûr, cliquer sur l'un ou l'autre type de raccourci ouvre l'objet lié, mais ce qui se passe sous le capot est différent dans les deux cas, comme nous le verrons ensuite.

Alors qu'un raccourci standard pointe vers un certain objet, un lien symbolique donne l'impression que l'objet lié est réellement là. Votre ordinateur et les applications qu'il contient liront le lien symbolique comme l'objet cible lui-même.

Sur macOS, vous en obtenez la preuve sous la forme d'un message "le fichier existe" qui apparaît lorsque vous essayez de créer un lien symbolique au même emplacement que l'objet d'origine. Même si vous essayez de déplacer le lien symbolique vers le même emplacement après l'avoir créé ailleurs, il est renommé en tant que copie.

Qu est-ce qu un lien symbolique (Symlink) ? Comment en créer un sous Linux

Supposons que vous ayez un certain dossier sur votre disque dur que vous souhaitez synchroniser avec Dropbox sans déplacer le dossier lui-même vers Dropbox.

Dans ce cas, créer un raccourci vers le dossier dans Dropbox est inutile. Le raccourci fonctionnera sur l'appareil sur lequel vous l'avez créé. Dropbox synchronisera également le raccourci. Mais, le fichier de raccourci synchronisé n'est pas valide lorsque vous y accédez à partir d'un autre ordinateur, c'est-à-dire qu'il ne mène nulle part.

Maintenant, si ce raccourci était un lien symbolique, vous ne seriez pas confronté à ce problème. En effet, Dropbox lit le lien symbolique comme le dossier réel et, par conséquent, synchronise les données de ce dossier. Vous pouvez ensuite accéder au dossier et à son contenu sur tous vos appareils sur lesquels la synchronisation Dropbox est activée, même si le dossier d'origine ne fait pas partie de votre Dropbox.

Gardez à l'esprit que, qu'il s'agisse d'un raccourci normal ou d'un lien symbolique, sa suppression n'aura aucune incidence sur l'objet d'origine.

En général, il est préférable de créer des liens symboliques plutôt que des raccourcis lorsque vous souhaitez :

  • Accédez à un fichier à partir de plusieurs emplacements sans créer de copies et sans utiliser beaucoup d'espace disque. (Les liens symboliques ne font que quelques octets.)
  • Conservez différentes versions d'un fichier tout en vous assurant que tout pointeur vers celui-ci mène toujours à la version la plus récente ou la plus à jour. (Cela fonctionne car un lien symbolique reste actif même lorsque vous remplacez le fichier cible par un autre fichier portant le même nom.)
  • Déplacez les données de votre lecteur C:\ vers, par exemple, un disque dur secondaire sans perturber les fonctions du système ou de l'application qui nécessitent que ces données se trouvent sur le lecteur C:\.

Vous rencontrerez probablement de nombreux autres cas d'utilisation de liens symboliques.

Vous pouvez créer des liens symboliques à l'aide du terminal ou de la ligne de commande. Nous reviendrons sur les outils pointer-cliquer plus tard si vous n'êtes pas à l'aise avec le terminal.

Sur Linux et macOS

Qu est-ce qu un lien symbolique (Symlink) ? Comment en créer un sous Linux

Sous Linux, vous pouvez créer un lien symbolique pour un fichier ou un dossier avec cette commande de terminal :

ln -s [/chemin/vers/fichier] [/chemin/vers/lien symbolique] 

La même commande fonctionne également sur macOS, car macOS est un système d'exploitation basé sur UNIX comme Linux.

Voir la capture d'écran ci-dessus pour un exemple de commande.

Le gestionnaire de fichiers natif de certains environnements de bureau Linux vous permet de créer un lien symbolique via le menu contextuel. Vous pouvez donc vérifier si votre application d'exploration de fichiers dispose de cette option.

Le populaire gestionnaire de fichiers Nautilus, fourni avec diverses distributions Linux, avait un Créer un lien option de menu qui a maintenant disparu. Mais vous pouvez toujours créer un lien symbolique dans Nautilus en maintenant la touche Ctrl enfoncée. et Shift touches et en faisant glisser le fichier cible vers l'emplacement où vous souhaitez que le lien symbolique apparaisse. Ne vous inquiétez pas, le fichier d'origine restera en place.

Sous Windows

Vous devrez ouvrir une fenêtre d'invite de commande en tant qu'administrateur et saisir la commande suivante pour créer un lien symbolique :

mklink [/path/to/symlink] [/path/to/file] 

Pour les liens symboliques vers des répertoires, vous devez modifier un peu la commande en utilisant le /d drapeau :

mklink /d [/path/to/symlink] [/path/to/file] 

Si vous ne voulez pas travailler avec la ligne de commande, vous pouvez utiliser un outil graphique appelé Link Shell Extension pour créer des liens symboliques. C'est l'une des meilleures extensions de l'Explorateur de fichiers Windows pour la gestion de fichiers.

Remarque : Le système ne vous empêchera pas de créer un lien symbolique dans un lien symbolique, mais il vaut mieux éviter de le faire. Sinon, vous créerez une boucle infinie qui peut entraîner des problèmes pour les services à l'échelle du système, tels que les antivirus.

Qu est-ce qu un lien symbolique (Symlink) ? Comment en créer un sous Linux

Si vous avez déjà créé des alias sur macOS, vous remarquerez qu'ils se comportent un peu comme des liens symboliques. Les deux types de raccourci font référence au chemin d'accès du fichier ou du dossier lié.

La différence est que l'alias marque également l'objet lié avec un identifiant appelé inode (nœud d'index). Cet identifiant est unique à l'objet et le suit dans le système de fichiers.

C'est pourquoi l'alias fonctionnera bien même si vous déplacez sa cible vers un autre emplacement. Essayez cela avec un lien symbolique et vous rencontrerez une erreur. (Vous pouvez déplacer l'alias et le lien symbolique eux-mêmes sans aucun problème, sauf si vous avez affaire à des fichiers protégés par le système.)

Bien sûr, les deux types de raccourcis s'avéreront inutiles si vous supprimez le fichier d'origine ou renommez l'un des dossiers plus haut dans la hiérarchie.

Impossible de faire la différence entre un alias et un lien symbolique car vous avez supprimé l'alias balise du nom de fichier pour l'alias ?

Ouvrez l'inspecteur de fichiers ou Obtenir des informations panneau pour chaque raccourci et regardez la taille du fichier sous le Général section. S'il indique (zéro octet sur le disque) , vous avez affaire à un lien symbolique.

Les liens symboliques (dans le dossier actuel) se révéleront également lorsque vous utiliserez cette commande de terminal :

ls -la 

La commande fonctionne également sous Linux et vous verrez le lien symbolique pointer vers l'emplacement de l'objet d'origine.

Les liens symboliques peuvent sembler déroutants au début, mais si vous prenez le temps de les comprendre, vous vous rendrez compte qu'ils sont finalement assez faciles à utiliser !

Vous pouvez même créer des liens symboliques sur Android avec Termux, une application qui vous permet d'utiliser la ligne de commande Linux. Et saviez-vous que vous pouviez partager plus facilement des fichiers Google Drive avec des liens symboliques ?


[]