Il est possible de créer ra­pi­de­ment des liens sous Linux avec la ligne de commande. La commande ln né­ces­saire à cet effet est re­la­ti­ve­ment simple d’uti­li­sa­tion ; elle ne requiert que peu de code et peut être utilisée pour dif­fé­rentes routines d’ap­pli­ca­tion. Toutefois, si vous souhaitez créer des liens spé­ci­fiques et efficaces, vous devez connaître la dif­fé­rence entre les liens physiques et les liens sym­bo­liques. Nous allons vous expliquer les ap­pli­ca­tions pour les­quelles chaque lien est re­com­mandé. En outre, nos exemples d’ap­pli­ca­tion vous per­met­tront de savoir quel code est né­ces­saire pour créer des liens avec Linux.

Qu’est-ce que la commande ln de Linux ?

La commande ln de Linux (« ln » cor­res­pon­dant à l’abré­via­tion du mot anglais « link », sig­ni­fiant « lien ») permet de créer des liens vers un fichier ou un ré­per­toire. Pour la saisie, il faut utiliser la ligne de commande de Linux (également appelée « Shell »), qui peut être ouverte et exploitée à partir d’une fenêtre de terminal. Sous Linux, la commande ln fait partie des commandes de terminal les plus im­por­tantes et les plus fré­quem­ment utilisées. Il est possible de créer des liens sym­bo­liques ou physiques avec cette ligne de commande.

Que sont les liens sym­bo­liques ou physiques ?

Pour utiliser la commande ln sous Linux de manière ju­di­cieuse et ciblée, il faut savoir dif­fé­ren­cier un lien sym­bo­lique d’un lien physique. Les liens sym­bo­liques cor­res­pon­dent à des ré­fé­rences croisées qui adressent un fichier d’origine avec un chemin de référence. Si vous déplacez ou supprimez le fichier d’origine, l’objet cible n’existe plus et le ré­per­toire se vide. En revanche, si c’est le lien sym­bo­lique que vous supprimez, le fichier d’origine est conservé, mais la référence à ce fichier disparaît. Pour ces liens, l’anglais parle de « softlinks » ou de « symlinks » (pour « symbolic links »). Vous pouvez créer des liens sym­bo­liques grâce à la commande ln du terminal Linux, mais aussi à partir des fonc­tion­na­li­tés de l’interface uti­li­sa­teur graphique, par exemple dans le ges­tion­naire de fichiers Linux. Sur l’interface uti­li­sa­teur graphique de Linux, les liens sym­bo­liques sont re­pré­sen­tés par une flèche, également présente sur l’icône du fichier.

Les liens physiques sont créés depuis la ligne de commande. Mieux intégrés à la gestion de mémoire d’un système d’ex­ploi­ta­tion et aux fichiers spé­ci­fiques utilisés que les liens sym­bo­liques, ils cons­ti­tuent des entrées de ré­per­toire sup­plé­men­taires pour les fichiers d’origine ; dif­fé­rents liens peuvent désigner un même fichier. Linux ne fait aucune dis­tinc­tion technique ou opé­ra­tion­nelle entre le lien d’origine (primaire) et les liens physiques générés ensuite (se­con­daires). Les entrées du ré­per­toire ont les mêmes droits et fonc­tion­nent en autonomie. Vous pouvez utiliser un lien physique pour accéder à un fichier depuis dif­fé­rents em­pla­ce­ments ; c’est utile pour les sau­ve­gardes.

Voici un exemple ca­rac­té­ris­tique de leur fonc­tion­ne­ment : un fichier ac­ces­sible depuis « Mes vidéos » peut être ouvert depuis « Mes vidéos sau­ve­gar­dées » avec un lien physique. En sup­pri­mant le fichier d’origine de « Mes vidéos », seule la référence prin­ci­pale au fichier vidéo disparaît, mais il s’ouvre toujours en parallèle (avec le lien renvoyant au fichier dans « Mes vidéos sau­ve­gar­dées »). Avec les liens physiques, toute note ajoutée à la gestion de mémoire ne prend pas le double de place. Ce sont des options d’accès (avec des chemins vers le fichier), non des copies physiques complètes.

Sous Linux, les liens physiques sont associés à un système de com­pa­ti­bi­lité interne spé­ci­fique. Chaque lien désigne un inode (nœud d’index). Un numéro d’inode dis­tinc­tif et unique lui est attribué, ainsi qu’au fichier d’origine. Un fichier n’est supprimé de la gestion des inodes (et du système) que si les entrées (l’ensemble des ré­fé­rences au fichier) sont in­va­li­dées par des sup­pres­sions et que le compteur de liens internes repart de zéro. Si une entrée est supprimée ou si le fichier est transféré vers un autre ré­per­toire, rien ne change. Les options restantes dans l’inode per­met­tant d’accéder au fichier d’origine restent valides.

Remarque
Les inodes sont des struc­tures de données définies. Ils peuvent décrire un fichier de manière unique, comporter des mé­ta­don­nées le con­cer­nant (son ap­par­te­nance à un groupe, son pro­prié­taire, ses droits d’accès, etc.) et do­cu­men­ter l’em­pla­ce­ment où il est stocké (sous la forme d’une adresse mémoire).

Liens physiques et sym­bo­liques : à quelles ap­pli­ca­tions con­vien­nent-ils le mieux ?

Avec les liens sym­bo­liques, les uti­li­sa­teurs au sens large peuvent créer la plupart des liens ha­bi­tuel­le­ment utilisés. Pour associer des fichiers à des ré­per­toires dépassant les limites du système de fichiers, même les dif­fé­rents disques durs et par­ti­tions ne cons­ti­tuent pas un obstacle. Toutefois, les liens sym­bo­liques ne sont pas aussi flexibles que les liens physiques lorsqu’il s’agit d’apporter des mo­di­fi­ca­tions à l’objet cible (c’est-à-dire de le déplacer ou de le supprimer).

Gé­né­ra­le­ment, les liens physiques ne peuvent mener que vers des fichiers, par vers des ré­per­toires ni des dossiers. Comme les numéros d’inode liés à ces liens physiques ne peuvent être gérés qu’au sein de par­ti­tions, il n’est possible de créer que des liens internes à celles-ci. Cependant, les systèmes Linux modernes com­por­tent fré­quem­ment plusieurs systèmes de fichiers sur dif­fé­rents disques durs et par­ti­tions. Si vous ciblez les liens physiques lors de la création de liens sous Linux, vous devez bien connaître votre système et disposer de certaines con­nais­sances de base (dans le domaine du par­ti­tion­ne­ment ou du formatage, par exemple).

Ils apportent tout de même un certain nombre d’avantages, notamment en ce qui concerne les sau­ve­gardes. Avec eux, vous disposez d’une solution d’accès al­ter­na­tive au fichier d’origine, ce qui permet de libérer de l’espace tout en amé­lio­rant la sécurité des données. Les ca­rac­té­ris­tiques positives de cette technique de liaison sont notamment mises à profit par le logiciel Hard­link­Ba­ckup.

Con­trai­re­ment aux liens sym­bo­liques, les liens physiques ne doivent pas être dé­ré­fé­ren­cés par des processus de calcul, car ils re­pré­sen­tent di­rec­te­ment le fichier d’origine. Cela signifie donc qu’ils peuvent être traités plus ra­pi­de­ment et qu’ils sont to­ta­le­ment trans­pa­rents, entre autres pour les ap­pli­ca­tions. Les liens physiques per­met­tent également de résoudre certains problèmes spé­ci­fiques. Par exemple, si un programme nécessite ab­so­lu­ment une bi­blio­thèque qui est en réalité obsolète, un lien physique est capable de maintenir cette fonction sup­plé­men­taire. Il reprend le nom de la bi­blio­thèque obsolète (qui a entre-temps été supprimée) et redirige l’uti­li­sa­teur vers une version plus récente.

Comment la commande ln s’utilise-t-elle en pratique ?

Dans la suite de cet article, nous allons vous présenter quelques exemples d’ap­pli­ca­tion simples pour la création de liens sous Linux. La syntaxe de la commande est adaptée aux tâches rou­ti­nières es­sen­tielles ef­fec­tuées ré­gu­liè­re­ment. Bien entendu, il est également possible d’effectuer des actions de liaison plus complexes avec la commande ln de Linux. Cependant, celles-ci né­ces­si­tent un peu de pratique en termes de gestion de la ligne de commande. Gé­né­ra­le­ment, il est né­ces­saire d’élaborer un code plus complexe.

Créer un lien physique dans le même ré­per­toire

Dans sa con­fi­gu­ra­tion standard et sans aucune autre option, la commande ln de Linux crée des liens fixes prenant la forme de liens physiques. Il est donc né­ces­saire de suivre ce format de commande :

ln -s Fichier Cible Référence

Avec le code qui suit, vous pouvez créer dans le profil uti­li­sa­teur Linux actuel « Pierre » (/home/pierre/) un lien physique vers un fichier vidéo (video.mp4). Le fichier d’origine et le lien physique ainsi généré se trouvent tous les deux dans le même ré­per­toire pour les vidéos. Si cela est né­ces­saire, le lien physique peut ensuite être déplacé sans aucun problème, sans pour autant perdre sa validité.

ln /home/pierre/videos/video.mp4 lien_physique_vers_fichier_video

Créer un lien physique dans un ré­per­toire différent

Si vous devez créer un lien vers le fichier vidéo sur l’en­vi­ron­ne­ment de bureau de Linux, veuillez utiliser cette syntaxe :

ln /home/pierre/videos/video.mp4 /home/pierre/Desktop/lien_physique_vers_fichier_video

Créer un lien sym­bo­lique pour des fichiers

Si vous souhaitez créer un lien sym­bo­lique en utilisant la commande ln de Linux, il est né­ces­saire de compléter la syntaxe à l’aide de l’option « -s » (« s » sig­ni­fiant « sym­bo­lique »). Pour un lien sym­bo­lique, le format de commande est le suivant :

ln -s Fichier Cible Référence

Dans cet exemple, le lien sym­bo­lique est créé dans le même dossier :

ln -s /home/pierre/video.mp4 lien_symbolique_vers_fichier_video

Créer un lien sym­bo­lique dans d’autres ré­per­toires

Vous pouvez aussi créer des liens sym­bo­liques dans d’autres ré­per­toires, par exemple sur votre bureau :

ln -s /home/pierre/videos/video.mp4 /home/pierre/Desktop/lien_symbolique_vers_fichier_video

Il est possible d’im­plé­men­ter une action de liaison plus complexe avec l’option « -t » (« t » sig­ni­fiant « target », pour « ré­per­toire cible ») et du code Linux sup­plé­men­taire :

ls Factures* | xargs ln -s -t /home/pierre/Desktop/

La syntaxe de commande crée des liens vers tous les fichiers de Factures* qui se trouvent dans le ré­per­toire de base et les déplace vers le ré­per­toire du bureau. L’as­té­risque (« * ») vous garantit que tous les fichiers contenant le mot « Factures » sont bien en­re­gis­trés (par exemple Factures_de_Janvier, Factures_de_Fevrier, etc.).

Si vous souhaitez exercer davantage de contrôle sur les actions de liaison et afficher des in­for­ma­tions sup­plé­men­taires, l’option « -v » (« v » sig­ni­fiant « Verbose », pour « mode Verbose ») peut vé­ri­ta­ble­ment vous aider. Elle ré­per­to­rie le nom de tous les fichiers reliés à l’écran, ce qui s’avère tout par­ti­cu­liè­re­ment utile pour les actions de liaison de grande envergure :

ln -s -v /home/pierre/videos/movie.mp4 /home/pierre/Desktop/lien_symbolique_vers_fichier_video

Il est possible de supprimer les liens sym­bo­liques en utilisant la commande spéciale Linux « rm » (« rm » sig­ni­fiant « remove », pour « supprimer »). L’extrait de code suivant permet de supprimer un lien sym­bo­lique vers un fichier vidéo se trouvant dans le ré­per­toire de travail actuel :

rm lien_symbolique_vers_fichier_video

Si vous souhaitez supprimer plusieurs fichiers vidéo du ré­per­toire de travail actuel en une seule fois, vous pouvez les ré­per­to­rier les uns après les autres en les séparant par une espace :

rm lien_symbolique_video1 lien_symbolique_video2 lien_symbolique_video3

Par exemple, grâce à l’option sup­plé­men­taire « -r » (« r » sig­ni­fiant « récursif »), il est possible de supprimer tous les fichiers de liens sym­bo­liques d’un dossier de liens sym­bo­liques. Si des sous-dossiers sub­sis­tent, ceux-ci sont également supprimés.

rm -r ~/Desktop/Dossier-Liens-Symboliques/*

Créer un lien sym­bo­lique pour des ré­per­toires

L’extrait de code suivant ne permet pas la liaison avec un fichier, mais avec un ré­per­toire. Un lien sym­bo­lique vers le dossier vidéo est placé sur le bureau, à l’aide de la syntaxe de commande suivante :

ln -s /home/pierre/videos/ /home/pierre/Desktop/lien_symbolique_pour_dossier_video

Lorsque vous créez des liens sous Linux, vous ne devez pas toujours né­ces­sai­re­ment ren­seig­ner des chemins complets (ou chemins absolus). La commande Shell et la commande ln de Linux acceptent aussi les chemins et rac­cour­cis relatifs. Par exemple, un tilde (« ~ ») re­pré­sente le chemin absolu vers le ré­per­toire de base de l’uti­li­sa­teur actuel (soit, dans notre exemple, /home/pierre/). Voici ce à quoi pourrait res­sem­bler le code compact pour un lien sym­bo­lique faisant référence au ré­per­toire vidéo sur le bureau (c’est-à-dire /Home/pierre/videos/) :

ln -s ~/videos ~/Desktop/lien_symbolique_pour_dossier_video
Note
Lorsque vous créez un lien à l’aide de la commande ln de Linux, aucune structure de ré­per­toire ne se crée au­to­ma­ti­que­ment. Pour que la commande ln s’exécute avec succès et sans erreur, les niveaux de ré­per­toire que vous souhaitez adresser doivent déjà tous exister (il en va de même pour les sous-dossiers si plusieurs niveaux de ré­per­toire sont per­ti­nents pour votre ap­pli­ca­tion).

Créer si­mul­ta­né­ment plusieurs liens sym­bo­liques dans un ré­per­toire cible

Le lien que vous créez peut à la fois mener vers un ré­per­toire et vers un fichier. Si tel est le cas, vous devez struc­tu­rer la syntaxe de la commande à l’aide du modèle qui suit :

ln <Option> <Objetdelien1> < Objetdelien2> <Dossier cible avec liens symboliques pour les objets de lien>

Dans cet exemple, « Ob­jet­de­lien1 » est à nouveau le fichier vidéo se trouvant dans le dossier vidéo de Pierre. « Ob­jet­de­lien2 », quant à lui, est un dossier appelé « Test » classé dans le ré­per­toire vidéo de Pierre en tant que sous-dossier. Les liens sym­bo­liques relatifs à ce fichier vidéo et à ce ré­per­toire de test doivent être générés dans le ré­per­toire cible intitulé « Dossier-liens-sym­bo­liques » :

ln -s ~/videos/video.mp4 ~/videos/test/ ~/Desktop/Dossier-liens-symboliques

Il faut que le ré­per­toire cible « Dossier-liens-sym­bo­liques » existe déjà sur le bureau pour que le lien fonc­tionne.

Créer des liens sym­bo­liques avec une sau­ve­garde

Si la commande ln de Linux doit servir à créer une copie de sau­ve­garde des fichiers déjà présents dans le ré­per­toire cible (dans cet exemple, il s’agirait donc d’un lien sym­bo­lique plus ancien, du même nom, vers le fichier vidéo), l’option de ligne de commande « -b » (« b » sig­ni­fiant « backup », pour « sau­ve­garde », peut s’avérer utile :

ln -s -b /home/pierre/videos/movie.mp4 /home/pierre/Desktop/lien_symbolique_vers_fichier_video

Le fichier de sau­ve­garde ainsi créé dans le ré­per­toire cible est re­con­nais­sable par le tilde à la fin de son nom (par exemple : lien_sym­bo­lique_vers_fichier_video~ en allemand). Si vous n’avez pas besoin d’effectuer de sau­ve­garde et que vous souhaitez écraser un ancien fichier de lien sym­bo­lique existant, utilisez l’option « -f » (« f » sig­ni­fiant « force ») :

ln -s -f /home/pierre/videos/movie.mp4 /home/pierre/Desktop/lien_symbolique_vers_fichier_video

Lorsque vous créez des liens sous Linux, l’option « --help » (« aide ») peut vous être utile, car elle ré­per­to­rie tous les pa­ra­mètres et options dis­po­nibles pour la commande ln. Si vous ajoutez l’option « -i » (« i ») sig­ni­fiant « in­te­rac­tif »), une demande de con­fir­ma­tion apparaît pour que vous au­to­ri­siez la sup­pres­sion de la cible.

Aller au menu principal