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 [15/12/2012 04:53]
martin_mtl [Modification du nom des fichiers liés :]
doc:systeme:ln [16/12/2012 02:03]
martin_mtl [Modification du nom des fichiers liés :]
Ligne 1: Ligne 1:
 ====== LN ====== ====== LN ======
  
-La commande ''​ln''​ établit un lien symbolique ou un lien physique entre 2 fichiers ​ou répertoires créés ou ajoutés.+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 22:
  
  
-===== Remarque Importante ​=====+===== 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 contenusDe mêmela suppression d'un fichier n'​affectera pas l'​autre.
-\\ +
----- +
-\\ +
-== Les liens physiques (hardlink) == +
- +
-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 51: Ligne 40:
  
 ===== 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 :
Ligne 186: Ligne 177:
 === 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 [[commande:​mv |commande mv]] :
    ​test_lien$ mv lien1.txt lien2.txt    ​test_lien$ mv lien1.txt lien2.txt
  
Ligne 216: Ligne 207:
  
 Il suffit : Il suffit :
-  - de renommer le fichier cible ''​test3.txt''​ en ''​test1.txt'',​ +  - de renommer le fichier cible ''​test2.txt''​ en ''​test1.txt'',​ 
-  - ou bien de recréer le fichier symbole ''​lien1.txt''​ en le pointant sur le fichier cible ''​test3.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 test3.txt lien1.txt+   ​test_lien$ 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 test3.txt test1.txt ​+   ​test_lien$ mv test2.txt test1.txt ​
  
 ==== Modifications des droits des fichiers liés : ==== ==== Modifications des droits des fichiers liés : ====
Ligne 236: Ligne 227:
 === Modification des droits d'un fichier symbole === === Modification des droits d'un fichier symbole ===
  
-En terminal root, exécutez ​la commande :+Situation de départ : 
 +<​code>​ 
 +martin@madebian:​~/​test_lien$ ls -l 
 +total 4 
 +lrwxrwxrwx 1 martin martin ​ 9 déc 14 23:00 lien1.txt -> test1.txt 
 +-rw-r--r-- 1 martin martin 13 déc 14 22:59 test1.txt 
 +</​code>​ 
 + 
 +En terminal root, changez les droits sur le fichier avec la commande ​[[commande:​chmod|chmod]] ​:
    ​test_lien#​ chmod 700 lien1.txt    ​test_lien#​ chmod 700 lien1.txt
 +
 +On obtient alors :
  
 <​code>​ <​code>​
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-l rwx rwx rwx votre_user votre_user ​ ​9 ​jun 21 07:23 lien1.txt -> test1.txt +lrwxrwxrwx ​martin martin ​ ​9 ​déc 14 23:00 lien1.txt -> test1.txt 
-rw- --- --- 1 votre_user votre_user ​13 jun 21 07:22 test1.txt +-rwx------ 1 martin martin ​13 déc 14 22:59 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
-Nous voyons que le fichier symbole ''​lien1.txt''​ n'est pas affecté par cette modifications des droits : \\ +Nous voyons que le fichier symbole ''​lien1.txt''​ n'est pas affecté par cette modifications des droits : 
-''​l **rwx rwx rwx** votre_user votre_user ​ ​9 ​jun 21 07:23 lien1.txt -> test1.txt''​+  ​lrwxrwxrwx ​martin martin ​ ​9 ​déc 14 23:00 lien1.txt -> test1.txt
  
-et que le fichier cible ''​test1.txt''​ s'en trouve directement rectifié par cette commande exécuter sur le fichier symbole ''​lien1.txt''​ : \\ +et que le fichier cible ''​test1.txt''​ s'en trouve directement rectifié par cette commande exécuter sur le fichier symbole ''​lien1.txt''​ : 
-''​**rw- --- ---** votre_user votre_user ​13 jun 21 07:22 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) : ====
Ligne 263: Ligne 263:
 ==== Créer un lien physique ==== ==== Créer un lien physique ====
  
-Supprimons ​les fichiers liés symboliquement :+Commençons par supprimer ​les fichiers liés symboliquement ​et créer un fichier de départ vide, test2, ​:
    ​test_lien$ rm *1.txt    ​test_lien$ rm *1.txt
 +   touch test2.txt
  
-Pour créer un lien physiqueon utilise ​la commande ''​ln''​ sans l'​option ''​-s''​.+Au départnous avons donc la situation suivante :
 <​code>​ <​code>​
-test_lien$ ln test2.txt lien2.txt +martin@madebian:​~/​test_lien$ ls -l 
-test_lien$ ls -l +total 0 
-total +-rw-r--r-- ​1 martin martin 0 déc 15 00:02 test2.txt
-- rw- r-- r-- 2 admijoel admijoel  ​jun 21 11:04 lien2.txt +
-- rw- r-- r-- 2 admijoel admijoel  ​jun 21 11:04 test2.txt+
 </​code>​ </​code>​
 +
 +Pour créer un lien physique, on utilise la commande ''​ln''​ sans l'​option ''​-s''​.
 +<​code>​
 +martin@madebian:​~/​test_lien$ ln test2.txt lien2.txt
 +martin@madebian:​~/​test_lien$ ls -l
 +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 test2.txt</​code>​
  
 Ah ! Plus de lettre "''​l''"​ ni de "//​flèches//"​ pour indiquer le lien physique. \\ Ah ! Plus de lettre "''​l''"​ ni de "//​flèches//"​ pour indiquer le lien physique. \\
 +
 Nous pouvons toutefois distinguer un changement dans le listage des droits des fichiers liés physiquement : Nous pouvons toutefois distinguer un changement dans le listage des droits des fichiers liés physiquement :
  
 Le chiffre ''​1''​ devient ''​2''​ dans la ligne du fichier cible test2.txt : Le chiffre ''​1''​ devient ''​2''​ dans la ligne du fichier cible test2.txt :
- 
-<​code>​ 
-- rw- r-- r-- 1 admijoel admijoel ​ 0 jun 21 11:04 test2.txt (avant) 
-- rw- r-- r-- 2 admijoel admijoel ​ 0 jun 21 11:04 test2.txt (après) 
-</​code>​ 
  
 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 admijoel admijoel  ​jun 21 11:04 lien2.txt+-rw-r--r-- ​**2** martin martin 0 déc 15 00:02 lien2.txt
 </​code>​ </​code>​
  
-Une autre différences ​est le partage des droits qui sont là __tout à fait identiques__ entre les fichiers liés physiquement. +Une autre différence ​est le partage des droits qui sont là __tout à fait identiques__ entre les fichiers liés physiquement.
-<​code>​ +
-- rw- r-- r-- 2 admijoel admijoel ​ 0 jun 21 11:04 lien2.txt +
-- rw- r-- r-- 2 admijoel admijoel ​ 0 jun 21 11:04 test2.txt +
-</​code>​+
  
 ==== Modifions le contenu des fichiers liés physiquement ==== ==== Modifions le contenu des fichiers liés physiquement ====
Ligne 302: Ligne 301:
 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>​
-test_lien$ echo Très bien titi ! > lien2.txt+martin@madebian:​~/​test_lien$ echo Très bien titi ! > lien2.txt
  
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 8 total 8
-- rw- r-- r-- 2 admijoel admijoel  ​18 jun 21 11:04 lien2.txt +-rw-r--r-- 2 martin martin ​18 déc 15 13:49 lien2.txt 
-- rw- r-- r-- 2 admijoel admijoel  ​18 jun 21 11:04 test2.txt+-rw-r--r-- 2 martin martin ​18 déc 15 13:49 test2.txt
  
-test_lien$ cat test2.txt+martin@madebian:​~/​test_lien$ cat test2.txt
 Très bien titi ! Très bien titi !
  
-test_lien$ echo Et toi toto ? >> test2.txt+martin@madebian:​~/​test_lien$ echo Et toi Jojo ? >> test2.txt
  
-test_lien$ cat lien2.txt+martin@madebian:​~/​test_lien$ cat lien2.txt
 Très bien titi ! Très bien titi !
-Et toi toto ?+Et toi Jojo ?
  
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 8 total 8
-- rw- r-- r-- 2 admijoel admijoel  ​32 jun 21 11:04 lien2.txt +-rw-r--r-- 2 martin martin ​32 déc 15 13:52 lien2.txt 
-- rw- r-- r-- 2 admijoel admijoel  ​32 jun 21 11:04 test2.txt+-rw-r--r-- 2 martin martin ​32 déc 15 13:52 test2.txt
 </​code>​ </​code>​
  
-Toutes les modifications,​ __ajoutées ou retranchées__ dans chacun des fichiers agira de même chez l'​autre.+Toutes les modifications,​ __ajoutées ou retranchées__ dans chacun des fichiers agira de même dans l'​autre.
  
 === Occupation concrète sur le disque === === Occupation concrète sur le disque ===
Ligne 330: Ligne 329:
 À 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>​ <​code>​
-test_lien$ ls -li +martin@madebian:​~/​test_lien$ ls -li 
-604492 ​- rw- r-- r-- 2 admijoel admijoel  ​32 jun 21 11:04 lien2.txt +total 8 
-604492 ​- rw- r-- r-- 2 admijoel admijoel  ​32 jun 21 11:04 test2.txt+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 test2.txt
 </​code>​ </​code>​
  
Ligne 347: Ligne 347:
 test_lien$ rm test2.txt test_lien$ rm test2.txt
  
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-- rw- r-- r-- 1 admijoel admijoel  ​32 jun 21 11:04 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 : \\
Ligne 368: Ligne 368:
  
 //Merci au //​**captnfab**//​ pour sa bienveillante et rigolote attention !// :-D //Merci au //​**captnfab**//​ pour sa bienveillante et rigolote attention !// :-D
- 
-===== TP01 - Nommer une partition ===== 
- 
-Vous pouvez nommer facilement vos partitions et organiser ainsi votre espace de travail. 
- 
-==== Créer le répertoire de montage ==== 
- 
-Créer le répertoire ''​stock''​ : 
-<code bash> 
-mkdir /​media/​stock</​code>​ 
- 
-Vérifier la création du répertoire stock et les droits d'​accès : 
-<code bash> 
-ls -l /media 
-        total 8 
-        drwxr-xr-x 2 root root 4096 jan 12 19:18 stock</​code>​ 
- 
-Éditer le fichier /etc/fstab avec [[manuel:​nano|Nano]] : 
-<code bash> 
-nano /​etc/​fstab</​code>​ 
- 
-Aller par les flèches du clavier sur /media/sda5 et remplacer sda5 par stock soit : 
-<​code>​ 
-/​dev/​sda5 ​  /​media/​sda5 ​     ext3       ​defaults ​        ​0 ​            ​2</​code>​ 
- 
-devient : 
-<​code>​ 
-/​dev/​sda5 ​  /​media/​stock ​     ext3      defaults ​        ​0 ​            ​2</​code>​ 
- 
-Enregistrez et quittez. 
- 
-//(à suivre)... palpitant, hein ?// 
- 
-==== Créer le lien symbolique ==== 
- 
-**Préalable :** 
- 
-Par exemple, si vous aviez utilisé avant : ''​media/​sda5'',​ il est possible que de nombreuses applications aient mémorisé des fichiers créés ou consultés sous le chemin : \\ 
-   ​media/​sda5/​suiteblabla... 
- 
-Plutôt que de modifier tous ces chemins, \\ 
- 
----- 
-\\ 
-//Car un bon //​linuxien//​ est un //​linuxien//​ qui laisse faire la bécane //AU MAXIMUM//. \\ 
-Ça repose et évite les erreurs.//​\\ 
- 
----- 
-\\ 
-En utilisant un lien symbolique, il est heureusement possible de faire en sorte que : 
-   ​media/​sda5/​blabla 
- 
-se traduise, dans notre exemple, systématiquement pour toutes ces applications par : 
-   /​media/​stock/​blabla 
-\\ 
-\\ 
-**Non** ? \\ 
-//Siiii// ! \\ 
-**Alleluia** ! \\ 
-//Dieu m'​tripote.//​ \\ 
-\\ 
-Desprogien, j'​adore ! ;-) 
- 
-=== Démonter la partition === 
- 
-Démonter la partition à lier : 
-<code bash> 
-umount /​dev/​sda5</​code>​ 
- 
-Vérifier que /media/sda5 n'est plus monté: 
-<code bash> 
-ls /media/sda5 
-   total 0</​code>​ 
- 
-=== Créer le nouveau répertoire symblink === 
- 
-<code bash> 
-rmdir /media/sda5 (cela détruit le répertoire vide sda5)</​code>​ 
-<code bash> 
-ln -s /​media/​stock /media/sda5 (cela créé le répertoire stock en mettant un lien 
-symbolique entre l'​ancien répertoire sda5 et le nouveau répertoire stock)</​code>​ 
- 
-=== Remonter la partition === 
- 
-Pour réactiver la partition sda5. 
-<code bash>​mount /​dev/​sda5</​code>​ 
-<code bash>ls -l /​media</​code>​ 
- 
-=== Tester === 
- 
-Ca marche ? Ouvrez un de ces logiciels (Gimp...) nourri avec l'​ancien nom ''​sda5''​ pour voir si y r'​trouve pas ses p'tits cailloux ! \\ 
-(traduction pour les grands : //Si le chemin se fait correctement...//​) 
- 
-//​Qu'​esch'​ qu'ça dit ? \\ 
-Et ben moi, c'est : //**Bye bye**//, que j'vous dis !// :-D 
  
  
doc/systeme/ln.txt · Dernière modification: 04/07/2024 15:51 par agp91 · Actuellement bloqué par: agp91

Pied de page des forums

Propulsé par FluxBB