Différences
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 | ||
lien_physique_et_symbolique [Le 12/09/2021, 18:27] 46.193.67.244 [Syntaxe des liens physiques ou symboliques] |
lien_physique_et_symbolique [Le 26/02/2025, 10:12] (Version actuelle) bcag2 [Exemple de lien symbolique] changer un lien symbolique existant |
||
---|---|---|---|
Ligne 26: | Ligne 26: | ||
===== 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 47: | 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 57: | 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 63: | 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 94: | 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 119: | 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> | ||
+ | |||
+ | Il est possible de remplacer un lien symbolique existant : | ||
+ | <code bash> | ||
+ | # !! assurez-vous au préalable qu'il s'agit bien d'un lien symbolique (cf. ls -F ou ls -i expliqué plus haut) !! | ||
+ | ln -sfn source lien_symb | ||
+ | # exemple, basculer sendmail vers msmtp | ||
+ | cd /usr/sbin | ||
+ | ln -sfn /usr/bin/msmtp sendmail | ||
+ | </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 ===== |