каждый файл на разделе диска имеет уникальный номер инода. создание жесткой ссылки увеличит счетчик ссылок файла, который можно увидеть при использовании команды ls -l
. Мне было немного любопытно, и я попытался напечатать номер инода / usr / bin / useradd и / usr / sbin / useradd
goku@vegeta:/tmp$ ls -li /usr/bin/useradd && ls -li /usr/sbin/useradd
1587075 -rwxr-xr-x 1 root root 125952 Jul 28 15:18 /usr/bin/useradd
1587075 -rwxr-xr-x 1 root root 125952 Jul 28 15:18 /usr/sbin/useradd
goku@vegeta:/tmp$
что я не понял, так это то, что оба этих файла имеют один и тот же индекс, но счетчик ссылок по-прежнему равен 1, даже если они принадлежат одному разделу, который является /dev/sda3
goku@vegeta:/tmp$ df /usr/sbin/useradd && df /usr/bin/useradd
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 35862048 7992636 26018020 24% /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 35862048 7992636 26018020 24% /
так как два файла могут принадлежать одному разделу и иметь одинаковый индекс, но ls -l
печатает 1 для счетчика ссылок?
при использовании команды diff
он говорит, что эти файлы идентичны
goku@vegeta:~$ diff -s /usr/bin/useradd /usr/sbin/useradd
Files /usr/bin/useradd and /usr/sbin/useradd are identical
goku@vegeta:~$
, но при использовании команды find
для поиска файла с номером индекса 1587075 выдает только файл useradd в / usr / bin а не в / usr / sbin
goku@vegeta:~$ sudo find / -inum 1587075
/usr/bin/useradd
goku@vegeta:~$
поэтому мои вопросы:
1-если / usr / bin / useradd и / usr / sbin / useradd являются жесткими ссылками, почему ls -li
печатает 1 для счетчика ссылок?
2 - почему find
возвращает файл только в / usr / bin / , а не в / usr / sbin / при использовании опции inum
?
я что-то упускаю из-за inode? спасибо