Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:ln [15/12/2012 22:44] martin_mtl [Remarque Importante] |
doc:systeme:ln [21/03/2015 07:10] enicar [LN] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== LN ====== | ====== LN ====== | ||
+ | * Objet: commande ln | ||
+ | * Niveau requis :{{tag>débutant avisé}} | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Commentaires : // Permet de créer des liens physiques ou symboliques // | ||
+ | * Suivi : {{tag>à-compléter}} | ||
+ | * Création par [[user>smolski]] le 21/06/2010 | ||
+ | * Testé par .... le .... | ||
+ | * Commentaires sur le forum : [[:url-invalide|C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | ||
- | La commande ''ln'' établit un lien symbolique ou un lien physique entre 2 fichiers ou répertoires créés ou ajoutés. | + | =====Introduction===== |
+ | La commande ''ln'' établit un lien symbolique ou un lien physique entre 2 fichiers. | ||
Son utilisation correspond à une redirection **active** entre deux //fichiers// désignés. \\ | Son utilisation correspond à une redirection **active** entre deux //fichiers// désignés. \\ | ||
- | Les modifications opérées //sur/dans// l'un sont visibles immédiatement depuis l'un ou l'autre des fichiers liés. | + | Les modifications opérées //sur/dans// l'un sont visibles immédiatement depuis l'un ou l'autre des fichiers liés. Autrement dit, un lien est un type spécial de fichier qui permet à plusieurs noms de fichiers de faire référence au même contenu sur un disque. |
===== Synopsis ===== | ===== Synopsis ===== | ||
Ligne 22: | Ligne 31: | ||
- | ===== Remarque Importante ===== | + | **ATTENTION :** Un lien physique à la particularité de devoir se situer __sur le même système de fichier__ que sa cible ! |
+ | ===== Description ===== | ||
+ | |||
+ | On distingue 2 sortes de lien : les liens durs et les liens symboliques. | ||
== Les liens symboliques (symlink) == | == Les liens symboliques (symlink) == | ||
- | Les liens symboliques (symlink) peuvent lier : | + | Un lien symbolique est constitué d'un réel fichier de petite taille ; il contient le nom du fichier auquel il correspond. Par conséquent, la suppression du fichier d'origine, c'est-à-dire la cible du lien, rendra le lien symbolique inutilisable puisqu'il ne correspondra plus à un fichier valide ; le lien sera alors brisé. |
- | * des fichiers | + | == Les liens physiques ou durs (hardlink) == |
- | * des répertoires | + | |
- | * et tout ce qui se nomment... | + | |
- | entre des systèmes différents, car ils sont gérés au niveau de l'OS (Operating System = Système d'exploitation = Linux ici). | + | Un lien dur associe deux ou plusieurs fichiers à un même espace sur le disque tout en préservant leurs indépendances lors de modifications de leurs contenus. De même, la suppression d'un fichier n'affectera pas l'autre. |
- | \\ | + | |
- | ---- | + | |
- | \\ | + | |
- | == Les liens physiques (hardlink) == | + | |
- | + | ||
- | Un lien dur associe deux ou plusieurs fichiers à un même espace sur le disque tout en préservant leurs indépendances lors de modifications de leurs contenus. | + | |
- | + | ||
- | Les liens physiques (hardlink) ne peuvent lier : | + | |
- | + | ||
- | - que des fichiers | + | |
- | - et que dans le même système de fichiers (une partition par exemple, ou un même système de fichiers en réseau...), | + | |
- | + | ||
- | car ils sont eux gérés au niveau du FS (File System = Système de fichiers). | + | |
**Nota :** \\ | **Nota :** \\ | ||
Ligne 53: | Ligne 50: | ||
===== Illustration pratique ===== | ===== Illustration pratique ===== | ||
+ | |||
+ | Afin de bien comprendre les principes que nous avons décrits ci-haut, nous allons illustrer tout cela à l'aide de quelques exemples simples. | ||
Débutant - À savoir : | Débutant - À savoir : | ||
- | * [[commande:> | La commande chevron ">"]] | + | * [[:doc:programmation:shell:chevrons | La commande chevron ">"]] |
- | * [[commande:ls | La commande LS]] | + | * [[:doc:systeme:ls | La commande LS]] |
- | * [[commande:rm | La commande RM]] | + | * [[:doc:systeme:rm | La commande RM]] |
- | * [[commande:a_savoir | Les Droits]] | + | * [[:doc:systeme:droits-unix | Les Droits]] |
- | * [[commande:mv | La commande MV]] | + | * [[:doc:editeurs:nano | La commande d'édition NANO]] |
- | * [[commande:pwd | La commande PWD]] | + | |
- | * [[manuel:nano | La commande d'édition NANO]] | + | |
//Et oui, tout ça cher Débutant ! Il reste que la plupart de ces commandes sont les commandes en ligne principales __usuelles__ à utiliser dans un terminal.// :-) | //Et oui, tout ça cher Débutant ! Il reste que la plupart de ces commandes sont les commandes en ligne principales __usuelles__ à utiliser dans un terminal.// :-) | ||
Ligne 69: | Ligne 66: | ||
==== Créer les répertoires et fichiers tests que nous allons utiliser ==== | ==== Créer les répertoires et fichiers tests que nous allons utiliser ==== | ||
- | Dans ''/home/votre_user/'', créez un répertoire nommé //test_lien// avec [[commande:mkdir|mkdir]] et s'y positionner avec [[commande:cd | cd]] : | + | Dans ''/home/votre_user/'', créez un répertoire nommé //test_lien// avec [[:doc:systeme:mkdir|mkdir]] et s'y positionner avec [[:doc:programmation:shell:cd | cd]] : |
$ cd ~ | $ cd ~ | ||
Ligne 78: | Ligne 75: | ||
test_lien$ | test_lien$ | ||
- | Créer dans ce répertoire un fichiers vide, //test1.txt//, avec [[commande:touch|touch]], puis ajoutez-y le texte //Bonjour toto// avec la commande [[commande:echo|echo]]. | + | Créer dans ce répertoire un fichiers vide, //test1.txt//, avec [[:doc:systeme:touch|touch]], puis ajoutez-y le texte //Bonjour toto// avec la commande [[:doc:systeme:echo|echo]]. |
test_lien$ touch test1.txt | test_lien$ touch test1.txt | ||
Ligne 84: | Ligne 81: | ||
test_lien$ echo Bonjour Jojo > test1.txt | test_lien$ echo Bonjour Jojo > test1.txt | ||
- | On vérifie avec la commande [[commande:cat|cat]] que notre texte est bien écrit dans le fichier test1.txt : | + | On vérifie avec la commande [[:doc:systeme:cat|cat]] que notre texte est bien écrit dans le fichier test1.txt : |
test_lien$ cat test1.txt | test_lien$ cat test1.txt | ||
Ligne 188: | Ligne 185: | ||
=== Modifier le nom du fichier symbole === | === Modifier le nom du fichier symbole === | ||
- | Modifions le nom du fichier symbole lien1.txt : | + | Modifions le nom du fichier symbole lien1.txt à l'aide de la [[:doc:systeme:mv |commande mv]] : |
test_lien$ mv lien1.txt lien2.txt | test_lien$ mv lien1.txt lien2.txt | ||
Ligne 246: | Ligne 243: | ||
</code> | </code> | ||
- | En terminal root, changez les droits sur le fichier avec la commande [[commande:chmod|chmod]] : | + | En terminal root, changez les droits sur le fichier avec la commande [[:doc:systeme:chmod|chmod]] : |
test_lien# chmod 700 lien1.txt | test_lien# chmod 700 lien1.txt | ||
Ligne 270: | Ligne 267: | ||
Mais outre d'évoluer à l'identique, comme avec un lien symbolique, les deux fichiers se nourrissent mutuellement et concrètement de toutes les modifications apportées à l'un ou à l'autre. | Mais outre d'évoluer à l'identique, comme avec un lien symbolique, les deux fichiers se nourrissent mutuellement et concrètement de toutes les modifications apportées à l'un ou à l'autre. | ||
- | <note important>**ATTENTION :** Un lien physique à la particularité de devoir se situer __sur le même système de fichier__ que sa cible !</note> | ||
+ | <note important>**ATTENTION :** Un lien physique à la particularité de devoir se situer __sur le même système de fichier__ que sa cible !</note> | ||
==== Créer un lien physique ==== | ==== Créer un lien physique ==== | ||
Ligne 374: | Ligne 371: | ||
//Voilà pour la commande //''ln''// dans tous ses états !// | //Voilà pour la commande //''ln''// dans tous ses états !// | ||
- | |||
\\ | \\ | ||
\\ | \\ | ||
- | |||
//Merci au //**captnfab**// pour sa bienveillante et rigolote attention !// :-D | //Merci au //**captnfab**// pour sa bienveillante et rigolote attention !// :-D | ||
- | ===== TP01 - Nommer une partition ===== | + | ===== Conclusion ===== |
+ | |||
+ | Les liens sont utiles si vous souhaitez qu'un fichier apparaisse dans plusieurs répertoires, ou sous un nom différent. | ||
+ | |||
+ | Si le fichier a une assez grande taille vous pouvez envisager, au lieu de copier dans un répertoire donné, de créer un lien réduisant ainsi l'utilisation d'espace disque. | ||
+ | |||
+ | Autre point très intéressant, créer des liens, au lieu de copier les fichiers, assure que toute modification dans un fichier se retrouvera bien dans les « copies » dispersées un peu partout. | ||
- | Voir : [[http://wiki.debian-facile.org/tuto:travaux?&#textes_a_rectifier_a_reviser_completement_ou_en_attente_de_validation|Texte en attente]] |