[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] les différents types de liens



On 12/07/2011 17:37, Etienne CROMBEZ wrote:
Je vous pris de m'excuser si je pose trop de question, mais cette
histoire de lien me perturbe.
Est ce que les liens hard ont un réel intérêt ou ont ils juste une
solution élégante à un problème qui ne se pose plus ou presque pas  ?
Ils ont de réels intérêts.

* Par exemple pour dupliquer une arborescence avec des hardlinks (que sur les fichiers), on utilise

  cp -l src/ dest

c'est rapide et économe. Pratique pour faire des tests sur les noms des fichiers par exemple, mais attention, si on touche au contenu des fichiers, bien entendu on les modifie "de partout" (dans src et dans dest).

* Git utilise aussi les hardlinks pour cloner ses dépôts localement:

 git init depot && cd depot
 date > fichier
 git add fichier && git commit
 cd ..
 git clone depot depot2

Git peut se le permettre puisque les meta-fichiers du dépôts (incréments ou blob de Git) ne seront jamais modifiés, au pire supprimés (gc) ce qui n'aura aucun effet sur la copie originale.

* Un dernier exemple: on peut ranger les fichier en plusieurs endroits en utilisant des hardlinks. Mais cela n'est pas hyper robuste dans le sens où certains programmes (comme l'éditeur de crontab "crontab -e") créent un nouveau fichier et remplacent l'ancien lorsque qu'on y fait une simple modification. Le fichier mofidié a alors un inode différent et n'est plus lié à l'inode originel.

On peut aussi voir un hardlink comme un pointeur sur inode (et ce pointeur a le bon goût d'être nommé). Un symlink pointe quant a lui un endroit dans l'arborescence (et le fichier pointé peut bien changer d'inode, le lien sera toujours valide tant que le nom est le même).

Je crois que pour bien assimiler les utilisations possibles de {sym,hard}links, il n'y a rien de tel que de la pratique et des expériences.

Nicolas


Reply to: