Znajdowanie wszystkich twardych dowiązań pliku bez przechodzenia przez system plików


9

Widziałem na tej stronie, że i-węzły mają licznik linków, aby wiedzieć, ile plików (czytaj: „pozycja katalogu”) wskazuje na ten i-węzeł. Czy istnieje sposób, aby dowiedzieć się, które katalogi zawierają takie wpisy bez przechodzenia przez cały system plików? Czy gdzieś te informacje są przechowywane?

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

Najszybsza metoda - tylko z przejściem - może być find -inum <n> -samefile path.
ott--

2
@ ott-- findjest używany albo -inum albo -samefile , ale nie z obu.
Hauke ​​Laging

@HaukeLaging masz rację, tylko jeden z nich.
ott--

Odpowiedzi:


10

Nie. Wpisy katalogu wskazujące na i-węzły są łączami jednokierunkowymi. I-węzły nie wskazują na pozycje katalogu.

Aby znaleźć pełną listę pozycji katalogu wskazujących na i-węzeł, musisz przechodzić przez system plików, aż znajdziesz wystarczającą liczbę pozycji katalogu, aby uwzględnić liczbę odsyłaczy i-węzła.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.