Назад | Перейти на главную страницу

Лучший способ найти все жесткие ссылки на каталог

Я отслеживаю, что может быть случайной или ошибочной жесткой ссылкой на каталог, поэтому я хочу найти все жесткие ссылки на каталог, чтобы проверить их вручную. (fsck ошибок не обнаруживает, но при случайной проверке количество ссылок оказывается неверным.)

Обычный способ проверки жестких ссылок на файл - использовать find, либо find -inum или find -samefile, но ни один из них не работает для каталогов:

user$ find . -links 3 -name '.*' -ls
user$ ls bar
l1/
user$ ls -iad bar
10541088 bar/
user$ ls -iad bar/.
10541088 bar/./
user$ ls -iad bar/l1/..
10541088 bar/l1/../
user$ find . -inum 10541088 -ls
10541088        0 drwxr-xr-x    3 user             admin                 102 Mar 17 11:36 ./bar
user$ find . -samefile bar -ls
10541088        0 drwxr-xr-x    3 user             admin                 102 Mar 17 11:36 ./bar

Обратите внимание, что хотя bar, bar/., и bar/l1/.. все жесткие ссылки на один и тот же индекс, find перечисляет только один из них.

я могу использовать ls -aiR / | grep 10541088 и это, по крайней мере, найдет точечные и точечные ссылки, но я не уверен, что нет какого-либо другого скрытого файла, который будет пропущен, плюс ls буду скрещивать устройства, чего я не хочу.

Есть ли лучший способ найти все жесткие ссылки на каталог?

Правильно иметь счет 3, когда у вас есть один подкаталог.

Если в каталоге 5 подкаталогов, у вас должно быть 7 подкаталогов.

В этом примере я предполагаю, что / usr / bin / не имеет подкаталога

Если вы считаете / usr / bin номер ссылки - 2.

  • ссылка 1 bin в каталоге / usr

  • ссылка 2 . в каталоге / usr / bin

Если вы считаете / usr / номер ссылки - 3.

  • ссылка 1 /usr в каталоге /

  • ссылка 2 . в каталоге / usr

  • ссылка 3 .. в каталоге / usr / bin

Если вы считаете / var / cache / man / номер ссылки - 26.

  • ссылка 1 man в каталоге / var / cache

  • ссылка 2 . в каталоге / var / cache / человек

  • ссылка 3 .. в каталоге / var / cache / man / cs

  • ссылка 4 .. в каталоге / var / cache / человек / да

  • ссылка 5 .. в каталоге / var / cache / man / es

  • ../ ..