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 06:18] martin_mtl [Modifions le contenu des fichiers liés physiquement] |
doc:systeme:ln [01/01/2013 23:30] smolski [Créer un lien physique (hardlink) :] |
||
---|---|---|---|
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 contenus. De même, la 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 58: | Ligne 49: | ||
* [[commande:rm | La commande RM]] | * [[commande:rm | La commande RM]] | ||
* [[commande:a_savoir | Les Droits]] | * [[commande:a_savoir | Les Droits]] | ||
- | * [[commande:mv | La commande MV]] | ||
- | * [[commande:pwd | La commande PWD]] | ||
* [[manuel:nano | La commande d'édition NANO]] | * [[manuel:nano | La commande d'édition NANO]] | ||
Ligne 186: | Ligne 175: | ||
=== 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 268: | Ligne 257: | ||
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> | ||
==== Créer un lien physique ==== | ==== Créer un lien physique ==== | ||
Ligne 305: | Ligne 293: | ||
==== Modifions le contenu des fichiers liés physiquement ==== | ==== Modifions le contenu des fichiers liés physiquement ==== | ||
- | //note de révision : poursuivre à partir d'ici// | + | |
=== Ajout === | === Ajout === | ||
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 338: | Ligne 326: | ||
À 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 355: | Ligne 344: | ||
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 371: | Ligne 360: | ||
//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 ===== |
- | + | ||
- | 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 ! \\ | + | Les liens sont utiles si vous souhaitez qu'un fichier apparaisse dans plusieurs répertoires, ou sous un nom différent. |
- | (traduction pour les grands : //Si le chemin se fait correctement...//) | + | |
- | //Qu'esch' qu'ça dit ? \\ | + | 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. |
- | Et ben moi, c'est : //**Bye bye**//, que j'vous dis !// :-D | + | |
+ | 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. | ||