Поиск всех жестких ссылок файла без обхода файловой системы

9

Я видел на этой странице, что у inode есть счетчик ссылок, чтобы узнать, сколько файлов (читай: «запись в каталоге») указывают на этот inode. Есть ли способ узнать, какие каталоги содержат такие записи, не проходя через всю файловую систему? Эта информация где-то хранится?

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;
    …
};
QDII
источник
Самый быстрый метод - только с обходом - может быть find -inum <n> -samefile path.
ot--
2
@ ott-- findиспользуется с либо -inum или -samefile , но не с обоими.
Хауке Лагинг
@HaukeLaging ты прав, только один из них.
ot--

Ответы:

10

Нет. Записи каталога, указывающие на inode, являются односторонними ссылками. Иноды не указывают на записи каталога.

Чтобы найти полный список записей каталога, которые указывают на индекс, вам нужно пройти через файловую систему, пока вы не найдете достаточно записей каталога, чтобы учесть количество ссылок индекса.

Celada
источник