Liens physiques

Bonjour,

on peut trouver les liens physiques d’un fichier connu avec la commande find ./ -samefile lefichier

Mais cette méthode prend beaucoup de temps car find scanne l’ensemble des fichiers de l’arborescence (ici : ./).

Pourtant, un lien dur n’est rien d’autre qu’un nom de chemin différent dans les métadonnées du fichier.

Existe-t-il un moyen d’afficher directement ces métadonnées, sans passer par la recherche de find ?

Merci

Peut-être avec debugfs si c’est un système de fichiers ext2/3/4.
Mais un lien direct (“hard link”, je ne vois pas ce qu’il y a de matériel là-dedans) est à sens unique : entrée de répertoire vers inode. Un inode ne contient que le nombre de références, c’est-à-dire le nombre de liens directs qui pointent vers lui, et pas le chemin ni même le nom du fichier qui est stocké dans le répertoire.

Bonjour

Je pensais à utiliser le N° d’inode d’un de ces noms de fichier pour trouver les autres,
alors j’ai créé deux liens durs vers un fichier,
et je lance la recherche en utilisant le numéro d’inode de l’un de ces fichiers :

michel@debg53sw:~$ ls -li srvLAMP
1744 -rw-r--r-- 3 michel michel 3340 avril 25 02:02 srvLAMP
michel@debg53sw:~$ 
michel@debg53sw:~$ find . 2>/dev/null -xdev -inum 1744
./srvLAMP
./Documents/deuxièmeLienDurVersSrvLAMP
./Bureau/lienVersSrvLAMP
michel@debg53sw:~$ 

Mais bon : j’utilise quand même find et il scanne quand même le système de fichier.
Ce n’est donc juste qu’une autre façon d’utiliser find pour retrouver ces noms.

Dans le principe ça ne doit pas être bien différent de ce que fait la commande de josephtux.

Tout-à fait d’accord, j’étais en train de le rajouter à la fin de mon précédent message.

Merci à tous les deux pour vos éclairages.

Donc, l’inode ne contient pas le chemin, comme je le croyais.

En effet, physique est incorrect et interprétable comme matériel.
Je corrige en «lien dur»

Mes données sont sur un système xfs

J’utilise aussi souvent ls -i pour un répertoire ou une arborescence limitée. Ma question porte sur un très gros volume de données, avec des liens éparpillés et parfois un basename différent, c’est à dire un volume long à scanner par find.

I