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 02:44]
martin_mtl [Créer les répertoires et fichiers tests que nous allons utiliser]
doc:systeme:ln [15/12/2012 06:18]
martin_mtl [Modifions le contenu des fichiers liés physiquement]
Ligne 54: Ligne 54:
 Débutant - À savoir : Débutant - À savoir :
  
-  * [[commande:​mkdir | La commande MKDIR]] 
-  * [[commande:​cd | La commande CD]] 
-  * [[commande:​touch | La commande TOUCH]] 
-  * [[commande:​echo | La commande ECHO]] 
-  * [[commande:​cat | La commande CAT]] 
   * [[commande:>​ | La commande chevron ">"​]]   * [[commande:>​ | La commande chevron ">"​]]
   * [[commande:​ls | La commande LS]]   * [[commande:​ls | La commande LS]]
Ligne 72: Ligne 67:
 ==== 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 [[commande:​mkdir|mkdir]] et s'y positionner avec [[commande:​cd | cd]] :+
  
    $ cd ~    $ cd ~
Ligne 82: Ligne 76:
    ​test_lien$    ​test_lien$
  
-Créer dans ce répertoire ​deux fichier **test1.txt** rempli de la ligne //Bonjour toto// ​et test2.txt laissé vide :+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]].
  
-   ​test_lien$ touch test2.txt +   ​test_lien$ touch test1.txt
  
-   ​test_lien$ echo Bonjour ​toto > 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 :
  
    ​test_lien$ cat test1.txt ​    ​test_lien$ cat test1.txt ​
-   ​Bonjour ​toto+   ​Bonjour ​Jojo
  
 ==== Créer un lien symbolique (symlink) : ==== ==== Créer un lien symbolique (symlink) : ====
 +
 +Situation de départ :
 +<​code>​
 +martin@madebian:​~/​test_lien$ ls -l
 +total 4
 +-rw-r--r-- 1 martin martin 13 déc 14 22:02 test1.txt
 +</​code>​
 +
 +On crée le lien symbolique :
  
    ​test_lien$ ln -s test1.txt lien1.txt    ​test_lien$ ln -s test1.txt lien1.txt
  
-Visualisez le résultat ​:+Ce qui nous fait maintenant ​:
  
 <​code>​ <​code>​
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-lrwxrwxrwx 1 votre_user votre_user ​ ​9 ​jun 21 07:23 lien1.txt -> test1.txt +lrwxrwxrwx 1 martin martin ​ ​9 ​déc 14 22:05 lien1.txt -> test1.txt 
-- rw- r-- r-- 1 votre_user votre_user ​13 jun 21 07:22 test1.txt +-rw-r--r-- 1 martin martin ​13 déc 14 22:02 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
-//**l**rwxrwxrwx 1 votre_user votre_user ​ **8** jun 21 07:23 lien1.txt **-> test1.txt**//+Attardons-nous un peu sur la ligne : 
 +**l**rwxrwxrwx 1 martin martin ​ **9** déc 14 22:05 lien1.txt **->** test1.txt 
   - **l** indique un lien symbolique sur ce fichier   - **l** indique un lien symbolique sur ce fichier
-  - **8** indique l'​occupation réelle du fichier sur le disque+  - **9** indique l'​occupation réelle du fichier sur le disque
   - **-> test1.txt** indique le fichier pointé par le lien symbolique   - **-> test1.txt** indique le fichier pointé par le lien symbolique
  
-Nous pouvons en déduire ​:+Précisons aussi que :
  
   * Un //fichier symbole// créé avec la commande ''​ln''​ ne contient pas l'​occupation disque affichée qui est contenue dans le fichier cible.   * Un //fichier symbole// créé avec la commande ''​ln''​ ne contient pas l'​occupation disque affichée qui est contenue dans le fichier cible.
Ligne 129: Ligne 135:
  
 <​code>​ <​code>​
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-lrwxrwxrwx 1 votre_user votre_user ​ **9** jun 21 07:23 lien1.txt -> test1.txt +lrwxrwxrwx 1 martin martin ​ ​9 ​déc 14 22:05 lien1.txt -> test1.txt 
-- rw- r-- r-- 1 votre_user votre_user **30** jun 21 07:22 test1.txt +-rw-r--r-- 1 martin martin ​30 déc 14 22:08 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
Ligne 147: Ligne 152:
 À 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>​ <​code>​
-test_lien$ ls -li +martin@madebian:​~/​test_lien$ ls -li 
-604494 - rw- r-- r-- 2 admijoel admijoel ​ 32 jun 21 11:04 lien2.txt +total 4 
-604493 ​- rw- r-- r-- 2 admijoel admijoel ​ 32 jun 21 11:04 test2.txt+8667148 lrwxrwxrwx 1 martin martin ​ 9 déc 14 22:05 lien1.txt -> test1.txt 
 +8667139 ​-rw-r--r-- ​1 martin martin 30 déc 14 22:08 test1.txt
 </​code>​ </​code>​
  
Ligne 161: Ligne 167:
  
 <​code>​ <​code>​
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-- rw- r-- r-- 1 votre_user votre_user **30** jun 21 07:22 test1.txt +-rw-r--r-- 1 martin martin ​30 déc 14 22:08 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
Ligne 173: Ligne 178:
  
 <​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 22:13 lien1.txt -> test1.txt 
-- rw- r-- r-- 1 votre_user votre_user **30** jun 21 07:22 test1.txt +-rw-r--r-- 1 martin martin ​30 déc 14 22:08 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
Ligne 186: Ligne 190:
  
 <​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 lien2.txt -> test1.txt +lrwxrwxrwx ​martin martin ​ ​9 ​déc 14 22:13 lien2.txt -> test1.txt 
-- rw- r-- r-- 1 votre_user votre_user **30** jun 21 07:22 test1.txt +-rw-r--r-- 1 martin martin ​30 déc 14 22:08 test1.txt
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt+
 </​code>​ </​code>​
  
 Tout reste fonctionnel et en place. :-) Tout reste fonctionnel et en place. :-)
  
-<​note>​Pour ​pousuivre ​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    ​test_lien$ mv lien2.txt lien1.txt
  
 === Modifier le nom du fichier cible === === Modifier le nom du fichier cible ===
  
-Modifions le nommage ​du fichier cible ''​test1.txt''​ : +Modifions le nom du fichier cible ''​test1.txt''​ : 
-   ​test_lien$ mv test1.txt ​test3.txt+   ​test_lien$ mv test1.txt ​test2.txt
  
 <​code>​ <​code>​
-test_lien$ ls -l+martin@madebian:​~/​test_lien$ ls -l
 total 4 total 4
-lrwxrwxrwx 1 votre_user votre_user ​ **9** jun 21 07:23 <del>lien1.txt</​del> ​-> <del>​test1.txt</​del>​ +lrwxrwxrwx 1 martin martin ​ ​9 ​déc 14 22:13 lien1.txt -> test1.txt 
-- rw- r-- r-- 1 votre_user votre_user 0 jun 21 07:22 test2.txt +-rw-r--r-- 1 martin martin 30 déc 14 22:08 test2.txt
-- rw- r-- r-- 1 votre_user votre_user **30** jun 21 07:22 test3.txt+
 </​code>​ </​code>​
  
-//Patatras !// Nous voyons alors que le fichier cible ''​lien1.txt''​ se met en carafe ​(surligné et en rouge dans le terminal bash) dès le //​rafraîchissement//​ du terminal ouvert.+//Patatras !// Nous voyons alors que le fichier cible ''​lien1.txt''​ se met en carafe ​- il devient écrit ​en rouge dans le terminal bash) dès le //​rafraîchissement//​ du terminal ouvert.
  
 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 234: Ligne 236:
 === 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 261: Ligne 272:
 ==== 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 ====
 +//note de révision : poursuivre à partir d'​ici//​
 === Ajout === === Ajout ===
  
doc/systeme/ln.txt · Dernière modification: 04/07/2024 19:29 par agp91

Pied de page des forums

Propulsé par FluxBB