IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Différence entre lien symbolique et lien direct


Sujet :

Linux

  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 851
    Points : 44 214
    Points
    44 214
    Par défaut Différence entre lien symbolique et lien direct
    Bonjour,

    Je ne comprend pas trop la différence entre un lien symbolique et un lien direct. Du coup que vaut mieux t'il utiliser ?

    Si quelqu'un peut m'expliquer ...

    J'ai constaté une différence de coloration dans le shell. L'appel à ln génère un fichier semblant identique à l'original, ln -s génère un fichier avec l'attribut "l" lors de l'appel à ls -l

    J'ai vu avec strace que les appels systèmes diffèrent respectivement link et symlink mais je ne comprend pas la signification provenant du man "create a new link" et donc les conséquences.

    Quel est le comportement avec tar par exemple (j'ai pas testé encore) pour une sauvegarde/restauration.



    Merci d'avance.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 677
    Points : 10 693
    Points
    10 693
    Par défaut
    C'est vrai que c'est chaud ces notions de liens surtout avec les limitations et sous Windows on t'en rajoute (Jonctions par exemple)

    Mais en gros:
    • Lien symbolique, c'est un raccourci. Lorsque le fichier est détruit, ton raccourci pointe sur rien.
    • Lien en dur, hardlink. Je le vois comme les "reference counting" en POO. C'est à dire que ton lien va pointer directement sur la structure "système de fichiers". Et tant qu'il existe un lien ou l'original, ton dossier/ fichier ne sera pas détruit.

  3. #3
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    une bonne façon de ne pas s'y perdre est le résumé ci dessous très succin mais très clair
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Hard link vs. Soft link in Linux or UNIX
     
        Hard links cannot link directories.
        Cannot cross file system boundaries.
     
    Soft or symbolic links are just like hard links. It allows to associate multiple filenames with a single file. However, symbolic links allows:
     
        To create links between directories.
        Can cross file system boundaries.
     
    These links behave differently when the source of the link is moved or removed.
     
        Symbolic links are not updated.
        Hard links always refer to the source, even if moved or removed.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 276
    Points : 13 553
    Points
    13 553
    Par défaut
    Bonjour

    Quelle est la différence entre un lien physique et un fichier ?
    Est-il juste de dire que le fichier est le premier lien physique vers un inode où se trouve le fichier en mémoire? Et quand on croit créer un premier lien physique, on ne crée en fait qu'une deuxième référence vers ce même inode ? Contrairement au lien symbolique qui s'attache au nom de fichier et non à l'inode ?

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 851
    Points : 44 214
    Points
    44 214
    Par défaut
    Merci pour vos réponses.

    Et si je fais un tar : quid des liens symboliques ? Sont ils des liens relatifs ou absolus (en cas de restauration vers un autre chemin le lien reste il valide ?) ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Recherche du travail
    Inscrit en
    Août 2004
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Recherche du travail

    Informations forums :
    Inscription : Août 2004
    Messages : 561
    Points : 1 320
    Points
    1 320
    Par défaut
    Tout dépend du chemin choisie lors de la création du lien symbolique:

    Relatif
    Absolue:
    Le chemin sera conservé lors de la création du tar.

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 851
    Points : 44 214
    Points
    44 214
    Par défaut
    Donc on a le choix. Ok

    Merci.

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Quelle est la différence entre un lien physique et un fichier ?
    Un fichier est, au sens large, tout ce qui est présent dans l'arborescence d'un système de fichier sous unix.
    Un fichier a un type indiqué par la première lettre affichée par "ls -l":

    d-> directory
    l-> lien symbolique
    c -> périphérique en mode caractère
    b -> périphérique en mode bloc
    p -> pipe nommé
    s -> socket
    - -> fichier "normal"
    Tous les fichier ont un numéro d'inode. Quand il s'agit de fichiers "normaux", ce numéro pointe vers une liste de blocs contenant les données des fichiers. Plusieurs fichiers peuvent avoir le même numéro d'inode, Dans ce cas, les plus récents ont été crées avec la commande ln.

    Est-il juste de dire que le fichier est le premier lien physique vers un inode où se trouve le fichier en mémoire?
    Non, il n'y a aucune différence entre tous les fichiers qui pointent vers le même inode, en dehors de leur noms différents.

    Et quand on croit créer un premier lien physique, on ne crée en fait qu'une deuxième référence vers ce même inode ?
    L'inode et le fichier sont crées simultanément et on crée la première référence vers l'inode, pas la deuxième.

    Contrairement au lien symbolique qui s'attache au nom de fichier et non à l'inode ?
    Oui, un lien symbolique pointe vers un nom de fichier, fichier qui n'a pas besoin d'exister d'ailleurs, contrairement à un lien physique qui ne peut être créé que vers un fichier existant.

    Citation Envoyé par chrtophe Voir le message
    Et si je fais un tar : quid des liens symboliques ? Sont ils des liens relatifs ou absolus (en cas de restauration vers un autre chemin le lien reste il valide ?) ?
    Par défaut, tar sauvegarde les liens symboliques tels quels, c'est à dire qu'il pointent toujours vers le même nom, à toi de t'assurer que ce nom existe sur la machine où tu extrait le tar.

    Tu peux aussi utiliser l'option -h de tar. Dans ce cas, le fichier réel est archivé et sera restauré comme un fichier normal.

  9. #9
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 520
    Points : 11 375
    Points
    11 375
    Par défaut
    Bonjour,

    je me permets d'attirer l'attention sur le comportement de la commande find à ce propos :
    Les options -H, -L et -P contrôlent le traitement des liens symboliques.
    http://man.developpez.com/man1/find (cf. 4.options)

    et de l'option - mount (cf. 5.1 Options)
    -mount Ne pas parcourir les répertoires situés sur d'autres systèmes de fichiers. Il s'agit d'une alternative à l'option -xdev, assurant la compatibilité avec d'anciennes versions de find.
    ... bien pratique quand il s'agit d'effectuer une recherche sur la racine ( "/") exclusivement par exemple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Différence entre l'éditeur de lien et le préprocesseur?
    Par Pif_Paf_Pouf dans le forum Débuter
    Réponses: 8
    Dernier message: 12/11/2014, 09h51
  2. Réponses: 2
    Dernier message: 11/05/2010, 22h18
  3. Réponses: 6
    Dernier message: 14/01/2010, 09h33
  4. Lien symbolique entre Apache et Tomcat sous Debian
    Par rohstev dans le forum Administration système
    Réponses: 17
    Dernier message: 13/05/2008, 11h33
  5. Différences entre ASP et ASP.NET ? (lien vers une adresse mail)
    Par Paul Van Walleghem dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/11/2007, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo