同じiノード番号を持つすべてのファイルをリストしますか?


53

たとえば、ls -liディレクトリ内で行うと、次のようになります。

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

出力が示すように、ファイルfun.txtに6つのハードリンクがあります。iノード番号は12353538です。

この場合、ファイルのすべてのハードリンク、つまり同じiノード番号を持つファイルを見つけるにはどうすればよいですか?

回答:


56
find /mount/point -samefile /mount/point/your/file

3
@TheoneManis find呼び出しの他の部分は不要であることに気付きました。findそれらを暗黙的に使用するのに十分賢いです。通常find、検索パスを指定し、これらのファイルシステムから離れないように指定する必要があります(シンボリックリンクまたはマウントポイントを使用)。しかし、ハードリンクを探す場合、どのファイルシステムを検索するかは明確です。
ハウケレイジング

6
Hauke、それはあなたが使っているfindのバージョンに依存します。GNUバージョンはそれを行うかもしれませんが、BSDバージョンはそうではなく、これはMacでは現状のままでは動作しません。
アランシュトコ

3
-xdev他のファイルシステムのディレクトリに降りないように追加する必要がある場合があります。そうしないと、別のファイルシステムにある同じiノード番号の別のファイルが見つかる場合があります。
mmoya

-samefileHP-UXとほぼ同じです-linkedto(ただし、多少異なりますが、たとえば、検索パスを指定する必要があります)。
ニック

3
マウントポイントのルートにいない場合、findは現在のフォルダーのサブフォルダーのみを探索することに注意してください。だからあなたは本当にのような何かを言う必要がありますfind /mount/point -samefile /mount/point/your/file
-Calimo

52

すでにiノード番号を持っている場合は、findの-inumオプションを使用できます。

find -inum 12353538

11
忘れずに、ファイルシステムのルートにcdするか、検索するパスとして指定するなどしてくださいfind /mount/point -inum 12353538。それ以外の場合、findは現在のフォルダーの下のみを検索します。
カリモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.