Encontrar todos los enlaces duros de un archivo sin atravesar el sistema de archivos


9

He visto en esta página que los inodes tienen un contador de enlaces para saber cuántos archivos (léase: "entrada de directorio") apuntan a este inodo. ¿Hay alguna manera de saber qué directorios contienen tales entradas sin atravesar todo el sistema de archivos? ¿Se almacena esta información en alguna parte?

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;
    …
};

El método más rápido, solo transversal, podría ser find -inum <n> -samefile path.
ott--

2
@ ott-- findse usa con uno -inum o -samefile no con ambos.
Hauke ​​Laging

@HaukeLaging tienes razón, solo uno de ellos.
ott--

Respuestas:


10

No. Las entradas de directorio que apuntan a inodes son enlaces unidireccionales. Los inodes no apuntan a las entradas del directorio.

Para encontrar una lista completa de entradas de directorio que apuntan a un inodo, debe recorrer el sistema de archivos hasta que haya encontrado suficientes entradas de directorio para dar cuenta del recuento de enlaces del inodo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.