Alle Dateien mit derselben Inode-Nummer auflisten?

53

Sagen wir ls -limal , wenn ich in einem Verzeichnis mache , bekomme ich folgendes:

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

Wie die Ausgabe zeigt, wird die Datei fun.txt hat 6 Hard - Links; und die Inode-Nummer ist 12353538 .

Wie finde ich unter diesen Umständen alle Hardlinks für die Datei, dh Dateien mit derselben Inode-Nummer?

da ich bin
quelle

Antworten:

56
find /mount/point -samefile /mount/point/your/file
Hauke ​​Laging
quelle
3
@ TheoneManis Mir ist gerade aufgefallen, dass die anderen Teile des Find-Aufrufs nicht notwendig sind. findist klug genug, sie implizit zu verwenden. In der Regel müssen Sie findeinen Suchpfad angeben und angeben, dass diese Dateisysteme nicht verlassen werden sollen (über Symlinks oder Mount-Punkte). Bei der Suche nach festen Links ist jedoch klar, in welchem ​​Dateisystem gesucht werden soll.
Hauke ​​Laging
6
Hauke, das hängt von der Version von find ab, die Sie verwenden. Die GNU-Version könnte das tun, aber die BSD-Version nicht, und dies funktioniert nicht wie es ist auf dem Mac.
Alan Shutko
3
Möglicherweise möchten Sie hinzufügen -xdev, um zu vermeiden, dass Sie in Verzeichnisse in anderen Dateisystemen absteigen. Andernfalls finden Sie möglicherweise eine andere Datei mit derselben Inode-Nummer in einem anderen Dateisystem.
mmoya
Das Beinahe-Äquivalent zu -samefileunter HP-UX ist -linkedto(obwohl es sich geringfügig unterscheidet: Es muss beispielsweise noch ein Suchpfad angegeben werden).
Nick
3
Beachten Sie, dass find nur Unterordner des aktuellen Ordners durchsucht, wenn Sie sich nicht im Stammverzeichnis Ihres Bereitstellungspunkts befinden. Sie sollten also wirklich etwas sagen wiefind /mount/point -samefile /mount/point/your/file
Calimo
52

Wenn Sie bereits über die Inode-Nummer verfügen, können Sie die -inumOption find verwenden :

find -inum 12353538
scai
quelle
11
Vergessen Sie nicht, die CD in das Stammverzeichnis des Dateisystems zu kopieren oder als Pfad anzugeben, den Sie suchen möchten find /mount/point -inum 12353538. Andernfalls wird find nur unterhalb des aktuellen Ordners angezeigt.
Calimo