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
lien_physique_et_symbolique [Le 03/06/2020, 10:55]
polobuntu
lien_physique_et_symbolique [Le 07/05/2023, 14:54] (Version actuelle)
bcag2 [Exemple de lien symbolique] chown/chgrp -h
Ligne 8: Ligne 8:
 I. Lien symbolique entre répertoires I. Lien symbolique entre répertoires
  
-De manière générale, ​voici comment utiliser la commande « ln » pour créer un lien symbolique : ln -s dossier_cible nom_du_lien.+De manière générale, ​un lien symbolique (ou : "​symlink"​) est un raccourci. Voici comment utiliser la commande « ln » pour créer un lien symbolique : 
 +<​code>​ln -s dossier_cible nom_du_lien.</​code>​
  
 Dans cet exemple, nous souhaitons qu’en allant sur le répertoire /opt/jdk, nous atterrissions en réalité sur /​opt/​jdk1_7.2. Cela permet de facilement gérer le changement de version de Java. Dans cet exemple, nous souhaitons qu’en allant sur le répertoire /opt/jdk, nous atterrissions en réalité sur /​opt/​jdk1_7.2. Cela permet de facilement gérer le changement de version de Java.
Ligne 14: Ligne 15:
 Nous allons commencer par créer un lien symbolique entre deux répertoires. Nous utiliserons pour cela la commande « ln » (links) : Nous allons commencer par créer un lien symbolique entre deux répertoires. Nous utiliserons pour cela la commande « ln » (links) :
  
-ln –s /​opt/​jdk1_7.2 /opt/jdk+<​code>​ln –s /​opt/​jdk1_7.2 /opt/jdk</​code>​
  
 Le lien symbolique « /opt/jdk » sera alors créé. Le lien symbolique « /opt/jdk » sera alors créé.
 +
 +II. Lien physique vers un fichier
 +
 +Un lien physique (ou : "​hardlink"​) est utilisé pour faire un lien direct vers un fichier. Le lien physique se crée aussi //via// la commande "​ln",​ cette fois-ci sans option :
 +<​code>​ln /​chemin/​fichier/​a/​lier chemin/​fichier/​lié</​code>​
 +
 ===== Définitions ===== ===== Définitions =====
  
-Il existe deux types de liens qui permettent de rediriger un fichier vers un autre : les **liens physiques** (ou matériels) et les **liens symboliques**. ​+Il existe deux types de liens qui permettent de rediriger un fichier vers un autre : les **liens physiques** (ou matériels) et les **liens symboliques**.
  
 Avec un lien physique, les données du disque sont pointées par plusieurs entrées de répertoire,​ contrairement à ce qui se passe avec un lien symbolique. Avec un lien physique, les données du disque sont pointées par plusieurs entrées de répertoire,​ contrairement à ce qui se passe avec un lien symbolique.
  
-Un lien matériel (ou physique) est l'​information exacte elle-même, située à la même position sur le disque dur. Avec un lien physique, vous pouvez copier certaines données du fichier cible, effacer le reste du fichier, et il continuera à exister. ​+Un lien matériel (ou physique) est l'​information exacte elle-même, située à la même position sur le disque dur. Avec un lien physique, vous pouvez copier certaines données du fichier cible, effacer le reste du fichier, et il continuera à exister.
  
 Un lien symbolique est un fichier qui pointe vers un autre fichier ; si vous supprimez le fichier cible, les liens symboliques pointeront vers un fichier inexistant. Un lien symbolique est un fichier qui pointe vers un autre fichier ; si vous supprimez le fichier cible, les liens symboliques pointeront vers un fichier inexistant.
Ligne 40: Ligne 47:
  
  
-  * **Lien symbolique** : permet d'​attribuer un autre chemin d'​accès à un fichier en pointant sur un nom de fichier. ​+  * **Lien symbolique** : permet d'​attribuer un autre chemin d'​accès à un fichier en pointant sur un nom de fichier.
  
 Voici le résultat obtenu en entrant la même commande **ls -i** : Voici le résultat obtenu en entrant la même commande **ls -i** :
Ligne 50: Ligne 57:
 On voit que les deux fichiers pointent vers deux numéros d'​inode **différents**. On voit que les deux fichiers pointent vers deux numéros d'​inode **différents**.
  
-<note help>​Dans quels cas est-il plus judicieux d'​utiliser un lien symbolique plutôt qu'un lien physique et vice-versa ? +<note help>​Dans quels cas est-il plus judicieux d'​utiliser un lien symbolique plutôt qu'un lien physique et vice-versa ?
  
 Réponse partielle 1 : dans les environnements graphiques (Dolphin, etc.), on ne trouve pas l'​option pour créer de lien fixe ... et je le regrette parfois. Réponse partielle 1 : dans les environnements graphiques (Dolphin, etc.), on ne trouve pas l'​option pour créer de lien fixe ... et je le regrette parfois.
Ligne 56: Ligne 63:
 Réponse partielle 2 : les liens symboliques permettent une meilleure maintenance de l'​espace disque. Avec des liens en dur (physiques) partout, il deviendrait difficile de savoir si on a vraiment effacé un fichier du disque. Réponse partielle 2 : les liens symboliques permettent une meilleure maintenance de l'​espace disque. Avec des liens en dur (physiques) partout, il deviendrait difficile de savoir si on a vraiment effacé un fichier du disque.
  
-Réponse partielle 3 : dans le cas où le lien doit pointer vers un autre système de fichiers (autre partition ou autre support de stockage), seul le lien symbolique est possible. ​+Réponse partielle 3 : dans le cas où le lien doit pointer vers un autre système de fichiers (autre partition ou autre support de stockage), seul le lien symbolique est possible.
  
-Réponse partielle 4 : dans la gestion des sauvegardes,​ les liens symboliques ne sont généralement pas suivis, ce qui permet d'​éviter de sauvegarder les mêmes fichiers plusieurs fois. +Réponse partielle 4 : dans la gestion des sauvegardes,​ les liens symboliques ne sont généralement pas suivis, ce qui permet d'​éviter de sauvegarder les mêmes fichiers plusieurs fois.
  
 Réponse partielle 5 : inversement,​ dans certains cas, il faut passer par le lien physique pour que la sauvegarde fonctionne. Il faut alors passer par la console (ligne de commande ou "​mc"​ à installer et essayer). Exemple : je sauvegarde régulièrement "/​etc",​ mais quelques rares paquets demandent un peu de configuration dans "/​var/​lib/​..."​ ; je mets alors des liens en dur dans un sous-répertoire ad hoc de mon répertoire /etc, pour que la sauvegarde de ces paquets soit aussi assurée. Réponse partielle 5 : inversement,​ dans certains cas, il faut passer par le lien physique pour que la sauvegarde fonctionne. Il faut alors passer par la console (ligne de commande ou "​mc"​ à installer et essayer). Exemple : je sauvegarde régulièrement "/​etc",​ mais quelques rares paquets demandent un peu de configuration dans "/​var/​lib/​..."​ ; je mets alors des liens en dur dans un sous-répertoire ad hoc de mon répertoire /etc, pour que la sauvegarde de ces paquets soit aussi assurée.
Ligne 87: Ligne 94:
  
 <note important>​Malheureusement,​ les liens symboliques ne sont pas mis à jour lorsque le fichier source est déplacé ou renommé. Il faut les recréer.</​note>​ <note important>​Malheureusement,​ les liens symboliques ne sont pas mis à jour lorsque le fichier source est déplacé ou renommé. Il faut les recréer.</​note>​
-===== Pré-requis ​pour l'​exemple =====+====== Prérequis ​pour l'​exemple ​======
  
 On montrera cela par un exemple simple : On montrera cela par un exemple simple :
Ligne 97: Ligne 104:
 ===== Exemple de lien physique ===== ===== Exemple de lien physique =====
  
-On crée un lien physique (que l'on nomme lien_dur)+On crée un lien physique (que l'on nomme lien_dur) ​:
    ln source lien_dur    ln source lien_dur
  
-À présent, on peut également lire le document source à partir de lien_dur+À présent, on peut également lire le document source à partir de lien_dur ​:
    gedit lien_dur    gedit lien_dur
  
Ligne 112: Ligne 119:
 ===== Exemple de lien symbolique ===== ===== Exemple de lien symbolique =====
  
-Pour créer un lien symbolique, on utilise aussi la commande ln, en ajoutant toutefois l'​option -s. +Pour créer un lien symbolique, on utilise aussi la commande ​//ln//, en ajoutant toutefois l'​option -s.
  
-On crée un lien symbolique (que l'on nomme ici lien_symb) +On crée un lien symbolique (que l'on nomme ici //lien_symb//: 
-   ​ln -s source lien_symb+<code bash>ln -s source lien_symb</​code>​
  
-On pourra toujours lire source depuis lien_symb +On pourra toujours lire //source// depuis ​//lien_symb// : 
-   ​gedit lien_symb+<code bash>gedit lien_symb</​code>​
  
-À la différence du lien physique, après la destruction de source, le fichier ne sera plus accessible !+À la différence du lien physique, après la destruction ​ou même simplement le renommage ​de source, le fichier ne sera plus accessible ! 
 +<code bash>
    rm source    rm source
    gedit lien_symb    gedit lien_symb
 +</​code>​
  
-On peut repérer les liens symboliques avec ls -F, ils apparaissent avec un @ à la fin. +On peut repérer les liens symboliques avec ls -F, ils apparaissent avec un @ à la fin.
    ls -F    ls -F
  
 +Pour modifier le propriétaire ou/et le groupe d'un lien symbolique, il faut utiliser l'​option //-h//, sinon c'est les propriétés de la cible qu'on change et non celle du lien (le sudo n'est pas indispensable,​ si on a les droits évidemment) :
 +<code bash>
 +sudo chown -h nom_utilisateur_proprio:​nom_groupe lien_symb
 +sudo chgrp -h nom_groupe lien_symb
 +</​code>​
 ===== Autres documentations disponibles ===== ===== Autres documentations disponibles =====
   * [[http://​wiki.linux-france.org/​wiki/​Les_commandes_fondamentales_de_Linux | Explication sur linux-france.org]] *   * [[http://​wiki.linux-france.org/​wiki/​Les_commandes_fondamentales_de_Linux | Explication sur linux-france.org]] *
 +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22433798#​p22433798 | Script corrigeant en masse les conséquences d'un renommage de dossier qui casse les liens symboliques dirigeant vers lui, ses sous-répertoires et fichiers]]. par MicP
  
 ===== En dual-boot Windows ===== ===== En dual-boot Windows =====
  • lien_physique_et_symbolique.1591174544.txt.gz
  • Dernière modification: Le 03/06/2020, 10:55
  • par polobuntu