logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [16/12/2012 02:13]
martin_mtl
doc:systeme:ln [04/07/2024 12:00]
agp91 [Illustration pratique]
Ligne 1: Ligne 1:
-====== ​LN ======+====== ​ln ====== 
 +  * Objet: commande ln 
 +  * Niveau requis :​{{tag>​débutant avisé}} 
 +  * Commentaires : // Permet de créer des liens physiques ou symboliques // 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) 
 +    * [[:​doc:​programmation:​shell:​chevrons | La commande chevron ">"​]] 
 +    * [[:​doc:​systeme:​ls | La commande ls]] 
 +    * [[:​doc:​systeme:​rm | La commande rm]] 
 +    * [[:​doc:​systeme:​droits-unix | Les droits]] 
 +    * [[:​doc:​editeurs:​nano | La commande d'​édition nano]] 
 +  * Suivi : {{tag>​à-compléter}}{{tag>​à-tester}} 
 +    * Création par [[user>​smolski]] le 21/​06/​2010 
 +    * Testé par .... le .... 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=113446|C'​est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
 +=====Introduction=====
 La commande ''​ln''​ établit un lien symbolique ou un lien physique entre 2 fichiers. La commande ''​ln''​ établit un lien symbolique ou un lien physique entre 2 fichiers.
  
Ligne 22: Ligne 36:
  
  
 +**ATTENTION :** Un lien physique à la particularité de devoir se situer __sur le même système de fichier__ que sa cible !
 ===== Description ===== ===== Description =====
  
Ligne 45: Ligne 60:
 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:pwd | La commande PWD]] +  * [[:doc:​editeurs:nano | La commande d'​édition NANO]]
-  * [[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 57: Ligne 71:
 ==== 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 ~+<code user>cd 
 +mkdir test_lien 
 +cd test_lien/​ 
 +</​code>​
  
-   $ mkdir test_lien+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]].
  
-   $ cd test_lien/ +<code user> 
-   test_lien$+touch test1.txt 
 +echo Bonjour Jojo > test1.txt 
 +</​code> ​
  
-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]].+On vérifie ​avec la commande [[:doc:​systeme:​cat|cat]] que notre texte est bien écrit dans le fichier test1.txt :
  
-   ​test_lien$ touch test1.txt+<code user> 
 +cat test1.txt 
 +</​code><​code>​ 
 +Bonjour Jojo 
 +</​code>​
  
-   ​test_lien$ echo Bonjour Jojo > test1.txt  +===== Créer un lien symbolique (symlink) : =====
- +
-On vérifie avec la commande [[commande:​cat|cat]] que notre texte est bien écrit dans le fichier test1.txt : +
- +
-   ​test_lien$ cat test1.txt  +
-   ​Bonjour Jojo +
- +
-==== Créer un lien symbolique (symlink) : ====+
  
 Situation de départ : Situation de départ :
-<​code>​ +<​code ​user>ls -l</​code>​ 
-martin@madebian:​~/​test_lien$ ​ls -l +<​code>​total 4
-total 4+
 -rw-r--r-- 1 martin martin 13 déc 14 22:02 test1.txt -rw-r--r-- 1 martin martin 13 déc 14 22:02 test1.txt
 </​code>​ </​code>​
Ligne 88: Ligne 103:
 On crée le lien symbolique : On crée le lien symbolique :
  
-   ​test_lien$ ​ln -s test1.txt lien1.txt+<code user>ln -s test1.txt lien1.txt</​code>​
  
 Ce qui nous fait maintenant : Ce qui nous fait maintenant :
  
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l +ls -l</​code>​ 
-total 4+<​code>​total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt
 -rw-r--r-- 1 martin martin 13 déc 14 22:02 test1.txt -rw-r--r-- 1 martin martin 13 déc 14 22:02 test1.txt
Ligne 114: Ligne 129:
 ==== Modification du contenu des fichiers liés ==== ==== Modification du contenu des fichiers liés ====
  
-   ​test_lien$ ​echo Comment vas-tu ? >> lien1.txt+<code user> 
 +echo Comment vas-tu ? >> lien1.txt 
 +cat lien1.txt 
 +</​code><​code>​ 
 +Bonjour toto 
 +Comment vas-tu ? 
 +</​code>​
  
-   ​test_lien$ cat lien1.txt  +<code user> 
-   ​Bonjour toto +cat test1.txt 
-   ​Comment vas-tu ? +</​code><​code>​ 
- +Bonjour toto 
-   test_lien$ ​cat test1.txt  +Comment vas-tu ? 
-   ​Bonjour toto +</​code>​
-   ​Comment vas-tu ?+
  
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l+ls -l 
 +</​code><​code>​
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt
Ligne 141: Ligne 162:
  
 À l'aide de la commande ''​ls -li'',​ nous pouvons voir l'​occupation disque générée par un lien //symlink// en constatant les chiffres indiquant les index respectifs des inodes de chacun des fichiers liés : À l'aide de la commande ''​ls -li'',​ nous pouvons voir l'​occupation disque générée par un lien //symlink// en constatant les chiffres indiquant les index respectifs des inodes de chacun des fichiers liés :
-<​code>​ + 
-martin@madebian:​~/​test_lien$ ​ls -li+<​code ​user
 +ls -li 
 +</​code><​code>​
 total 4 total 4
 8667148 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt 8667148 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt
Ligne 154: Ligne 177:
 L'​effacement du fichier symbole ''​lien1.txt''​ ne détruit ni le contenu, ni l'​apparence du fichier cible ''​test1.txt''​ : L'​effacement du fichier symbole ''​lien1.txt''​ ne détruit ni le contenu, ni l'​apparence du fichier cible ''​test1.txt''​ :
  
-   ​test_lien$ ​rm lien1.txt  +<code user> 
- +rm lien1.txt 
-<​code>​ +ls -l 
-martin@madebian:​~/​test_lien$ ls -l+</​code>​<​code>​
 total 4 total 4
 -rw-r--r-- 1 martin martin 30 déc 14 22:08 test1.txt -rw-r--r-- 1 martin martin 30 déc 14 22:08 test1.txt
Ligne 165: Ligne 188:
  
 Recréons le même fichier symbole //​lien1.txt//​ : Recréons le même fichier symbole //​lien1.txt//​ :
-   ​test_lien$ ​ln -s test1.txt lien1.txt +<code user> 
- +ln -s test1.txt lien1.txt 
-<​code>​ +ls -l 
-martin@madebian:​~/​test_lien$ ls -l+</​code>​<​code>​
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien1.txt -> test1.txt
Ligne 176: Ligne 199:
 === Modifier le nom du fichier symbole === === Modifier le nom du fichier symbole ===
  
-Modifions le nom du fichier symbole lien1.txt à l'aide de la [[commande:mv |commande mv]] : +Modifions le nom du fichier symbole lien1.txt à l'aide de la [[:​doc:​systeme:mv |commande mv]] : 
-   test_lien$ ​mv lien1.txt lien2.txt+<code user>mv lien1.txt lien2.txt</​code>​
  
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l+ls -l 
 +</​code><​code>​
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien2.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien2.txt -> test1.txt
Ligne 189: Ligne 213:
  
 <​note>​Pour poursuivre cette illustration dans la clarté, remettons le nommage du fichier symbole ''​lien2.txt''​ en ''​lien1.txt''​.</​note>​ <​note>​Pour poursuivre cette illustration dans la clarté, remettons le nommage du fichier symbole ''​lien2.txt''​ en ''​lien1.txt''​.</​note>​
-   ​test_lien$ ​mv lien2.txt lien1.txt+<code user>mv lien2.txt lien1.txt</​code>​
  
 === Modifier le nom du fichier cible === === Modifier le nom du fichier cible ===
  
 Modifions le nom du fichier cible ''​test1.txt''​ : Modifions le nom du fichier cible ''​test1.txt''​ :
-   ​test_lien$ ​mv test1.txt test2.txt +<code user>mv test1.txt test2.txt 
- +ls -l 
-<​code>​ +</​code>​<​code>​
-martin@madebian:​~/​test_lien$ ls -l+
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:13 lien1.txt -> test1.txt
Ligne 208: Ligne 231:
   - de renommer le fichier cible ''​test2.txt''​ en ''​test1.txt'',​   - de renommer le fichier cible ''​test2.txt''​ en ''​test1.txt'',​
 <​del> ​ - ou bien de recréer le fichier symbole ''​lien1.txt''​ en le pointant sur le fichier cible ''​test2.txt''​ par reformulation de la commande : <​del> ​ - ou bien de recréer le fichier symbole ''​lien1.txt''​ en le pointant sur le fichier cible ''​test2.txt''​ par reformulation de la commande :
-   test_lien$ ​ln -s test2.txt lien1.txt</​del>​+   ln -s test2.txt lien1.txt</​del>​
  
 Et tout redevient effectif. Et tout redevient effectif.
  
 Pour la suite du tuto, choisir de remettre le fichier en test1.txt Pour la suite du tuto, choisir de remettre le fichier en test1.txt
-   ​test_lien$ ​mv test2.txt test1.txt ​+<code user>mv test2.txt test1.txt</​code> ​
  
 ==== Modifications des droits des fichiers liés : ==== ==== Modifications des droits des fichiers liés : ====
Ligne 227: Ligne 250:
  
 Situation de départ : Situation de départ :
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l+ls -l 
 +</​code><​code>​
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 23:00 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 23:00 lien1.txt -> test1.txt
Ligne 234: Ligne 258:
 </​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+<code root>chmod 700 lien1.txt</​code>​
  
 On obtient alors : On obtient alors :
  
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l+ls -l 
 +</​code><​code>​
 total 4 total 4
 lrwxrwxrwx 1 martin martin ​ 9 déc 14 23:00 lien1.txt -> test1.txt lrwxrwxrwx 1 martin martin ​ 9 déc 14 23:00 lien1.txt -> test1.txt
Ligne 252: Ligne 277:
   rwx------ 1 martin martin 13 déc 14 22:59 test1.txt   rwx------ 1 martin martin 13 déc 14 22:59 test1.txt
  
-==== Créer un lien physique (hardlink) : ====+===== Créer un lien physique (hardlink) : =====
  
 Un lien physique est la création d'un fichier à l'​identique de celui qu'il pointe. Un lien physique est la création d'un fichier à l'​identique de celui qu'il pointe.
  
 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>​
Ligne 263: Ligne 289:
  
 Commençons par supprimer les fichiers liés symboliquement et créer un fichier de départ vide, test2, : Commençons par supprimer les fichiers liés symboliquement et créer un fichier de départ vide, test2, :
-   ​test_lien$ ​rm *1.txt + 
-   ​touch test2.txt+<code user> 
 +rm *1.txt 
 +touch test2.txt 
 +</​code>​
  
 Au départ, nous avons donc la situation suivante : Au départ, nous avons donc la situation suivante :
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ls -l+ls -l 
 +</​code><​code>​
 total 0 total 0
 -rw-r--r-- 1 martin martin 0 déc 15 00:02 test2.txt -rw-r--r-- 1 martin martin 0 déc 15 00:02 test2.txt
Ligne 274: Ligne 304:
  
 Pour créer un lien physique, on utilise la commande ''​ln''​ sans l'​option ''​-s''​. Pour créer un lien physique, on utilise la commande ''​ln''​ sans l'​option ''​-s''​.
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​ln test2.txt lien2.txt +ln test2.txt lien2.txt 
-martin@madebian:​~/​test_lien$ ​ls -l+ls -lv 
 +</​code><​code>​
 total 0 total 0
 -rw-r--r-- 2 martin martin 0 déc 15 00:02 lien2.txt -rw-r--r-- 2 martin martin 0 déc 15 00:02 lien2.txt
Ligne 288: Ligne 319:
  
 Pareillement dans la ligne du fichier symbole physique lien2.txt créé : Pareillement dans la ligne du fichier symbole physique lien2.txt créé :
 +
 <​code>​ <​code>​
 -rw-r--r-- **2** martin martin 0 déc 15 00:02 lien2.txt -rw-r--r-- **2** martin martin 0 déc 15 00:02 lien2.txt
Ligne 299: Ligne 331:
  
 Ajoutons du contenu dans l'un puis un second ajout dans l'​autre des fichiers liés //​physiquement//​ en vérifiant les contenus à chaque fois : Ajoutons du contenu dans l'un puis un second ajout dans l'​autre des fichiers liés //​physiquement//​ en vérifiant les contenus à chaque fois :
-<​code>​ +<​code ​user
-martin@madebian:​~/​test_lien$ ​echo Très bien titi ! > lien2.txt +echo Très bien titi ! > lien2.txt 
- +ls -l 
-martin@madebian:​~/​test_lien$ ​ls -l+</​code><​code>​
 total 8 total 8
 -rw-r--r-- 2 martin martin 18 déc 15 13:49 lien2.txt -rw-r--r-- 2 martin martin 18 déc 15 13:49 lien2.txt
 -rw-r--r-- 2 martin martin 18 déc 15 13:49 test2.txt -rw-r--r-- 2 martin martin 18 déc 15 13:49 test2.txt
 +</​code>​
  
-martin@madebian:​~/​test_lien$ ​cat test2.txt+<code user> 
 +cat test2.txt 
 +</​code><​code>​
 Très bien titi ! Très bien titi !
 +</​code>​
  
-martin@madebian:​~/​test_lien$ ​echo Et toi Jojo ? >> test2.txt +<code user> 
- +echo Et toi Jojo ? >> test2.txt 
-martin@madebian:​~/​test_lien$ ​cat lien2.txt+cat lien2.txt 
 +</​code><​code>​
 Très bien titi ! Très bien titi !
 Et toi Jojo ? Et toi Jojo ?
 +</​code>​
  
-martin@madebian:​~/​test_lien$ ​ls -l+<code user> 
 +ls -l 
 +</​code><​code>​
 total 8 total 8
 -rw-r--r-- 2 martin martin 32 déc 15 13:52 lien2.txt -rw-r--r-- 2 martin martin 32 déc 15 13:52 lien2.txt
Ligne 327: Ligne 367:
  
 À l'aide de la commande ''​ls -li'',​ nous pouvons voir l'​occupation disque générée par un lien //​hardlink//​ en constatant les chiffres indiquant les index respectifs des inodes de chacun des fichiers liés : À l'aide de la commande ''​ls -li'',​ nous pouvons voir l'​occupation disque générée par un lien //​hardlink//​ en constatant les chiffres indiquant les index respectifs des inodes de chacun des fichiers liés :
-<​code>​ + 
-martin@madebian:​~/​test_lien$ ​ls -li+<​code ​user
 +ls -li 
 +</​code><​code>​
 total 8 total 8
 8667149 -rw-r--r-- 2 martin martin 32 déc 15 13:52 lien2.txt 8667149 -rw-r--r-- 2 martin martin 32 déc 15 13:52 lien2.txt
Ligne 343: Ligne 385:
  
 Suppression du fichier cible ''​test2.txt''​ : Suppression du fichier cible ''​test2.txt''​ :
-<​code>​ +<​code ​user
-test_lien$ ​rm test2.txt +rm test2.txt 
- +ls -l 
-martin@madebian:​~/​test_lien$ ​ls -l+</​code><​code>​
 total 4 total 4
 -rw-r--r-- 1 martin martin 32 déc 15 13:52 lien2.txt -rw-r--r-- 1 martin martin 32 déc 15 13:52 lien2.txt
 </​code>​ </​code>​
 +
 Comme dit le captnfab dans sa relecture : \\ Comme dit le captnfab dans sa relecture : \\
 Il est à remarquer que le chiffre ''​2''​ est passé à ''​1''​ car il n'y a plus de second fichier lié. Il est à remarquer que le chiffre ''​2''​ est passé à ''​1''​ car il n'y a plus de second fichier lié.
Ligne 356: Ligne 399:
  
 Pour supprimer définitivement les deux fichiers et leurs contenus, nous devons les effacer tous deux. Pour supprimer définitivement les deux fichiers et leurs contenus, nous devons les effacer tous deux.
-   ​test_lien$ ​rm *2.txt +<code user> 
- +rm *2.txt 
-   ​test_lien$ ​ls -l +ls -l 
-   ​total 0+</​code><​code>​ 
 +total 0 
 +</​code>​
  
 //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
  
doc/systeme/ln.txt · Dernière modification: 04/07/2024 19:29 par agp91

Pied de page des forums

Propulsé par FluxBB