ファイルシステムを走査せずにファイルのすべてのハードリンクを見つける


9

私が見ているこのページでは、iノードが持っているリンクカウンタをポイントこのiノードへ:どのように多くのファイル(「ディレクトリエントリ」を読んで)知っています。ファイルシステム全体を走査せずに、どのディレクトリにそのようなエントリが含まれているかを知る方法はありますか?この情報はどこかに保存されていますか?

struct inode {
    kdev_t                       i_dev;
    unsigned long                i_ino;
    umode_t                      i_mode;
    nlink_t                      i_nlink;
    uid_t                        i_uid;
    gid_t                        i_gid;
    …
};

最速の方法-トラバーサルのみ-が可能性がありますfind -inum <n> -samefile path
ott-- 2013年

2
@ ott-- findどちらか -inum または -samefile両方で使用されますが、両方では使用されません。
Hauke Laging 2013年

@HaukeLagingあなたは正しい、そのうちの1つだけ。
ott--

回答:


10

いいえ。iノードを指すディレクトリエントリは一方向のリンクです。iノードはディレクトリエントリをポイントしません。

iノードを指すディレクトリエントリの完全なリストを見つけるには、iノードのリンク数を考慮に入れるのに十分なディレクトリエントリが見つかるまで、ファイルシステムをトラバースする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.