Liste tous les fichiers avec le même numéro d'inode?

53

Disons que lorsque je le fais ls -lidans un répertoire, je reçois ceci:

12353538 -rw-r--r-- 6 me me 1650 2013-01-10 16:33 fun.txt

Comme le montre la sortie, le fichier fun.txt a 6 liens physiques ; et le numéro d'inode est 12353538 .

Dans ce cas, comment trouver tous les liens physiques du fichier, c’est-à-dire les fichiers portant le même numéro d’inode?

c'est moi
la source

Réponses:

56
find /mount/point -samefile /mount/point/your/file
Hauke ​​Laging
la source
3
@TheoneManis Je viens de remarquer que les autres parties de l'appel de recherche ne sont pas nécessaires. findest assez intelligent pour les utiliser implicitement. Habituellement, vous devez donner findun chemin de recherche et le dire, c'est-à-dire qu'il ne faut pas quitter ces systèmes de fichiers (via des liens symboliques ou des points de montage). Mais lorsque vous recherchez des liens physiques, le système de fichiers à rechercher est clairement défini.
Hauke ​​Laging
6
Hauke, cela dépend de la version de find que vous utilisez. La version GNU peut le faire, mais pas la version BSD, et cela ne fonctionnera pas tel quel sur Mac.
Alan Shutko
3
Vous voudrez peut-être ajouter -xdevpour éviter de descendre dans les répertoires d'autres systèmes de fichiers, sinon vous pourriez trouver un autre fichier avec le même numéro d'inode situé dans un autre système de fichiers.
mmoya
Le quasi-équivalent à -samefilesur HP-UX est -linkedto(bien qu'il soit légèrement différent: un chemin de recherche doit toujours être spécifié, par exemple).
Nick
3
Notez que si vous ne vous trouvez pas à la racine de votre point de montage, find explorera uniquement les sous-dossiers du dossier actuel. Donc, vous devriez vraiment dire quelque chose commefind /mount/point -samefile /mount/point/your/file
Calimo
52

Si vous avez déjà le numéro d'inode, vous pouvez utiliser l' -inumoption de recherche:

find -inum 12353538
scai
la source
11
N'oubliez pas de vous connecter à la racine du système de fichiers ou indiquez-le comme chemin d'accès, par exemple find /mount/point -inum 12353538. Sinon, find cherchera uniquement en dessous du dossier actuel.
Calimo