Localizando todos os links físicos de um arquivo sem percorrer o sistema de arquivos

9

Eu vi nesta página que os inodes possuem um contador de links para saber quantos arquivos (leia-se: "entrada do diretório") apontam para esse inode. Existe uma maneira de saber quais diretórios contêm essas entradas sem percorrer todo o sistema de arquivos? Esta informação está armazenada em algum lugar?

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
fonte
O método mais rápido - apenas com travessia - pode ser find -inum <n> -samefile path.
ott--
2
@ ott-- findé usado com qualquer -inum ou -samefile , mas não com ambos.
Hauke ​​Laging
@HaukeLaging você está certo, apenas um deles.
ott--

Respostas:

10

Não. As entradas do diretório que apontam para inodes são links unidirecionais. Os inodes não apontam para as entradas do diretório.

Para encontrar uma lista completa de entradas de diretório que apontam para um inode, você precisa percorrer o sistema de arquivos até encontrar entradas de diretório suficientes para contabilizar a contagem de links do inode.

Celada
fonte