Как вы можете сказать, сколько жестких ссылок каталог имеет в OSX от терминала? - PullRequest
3 голосов
/ 13 июня 2011

Как вы можете узнать, сколько жестких ссылок у каталога в OSX на терминале?

В OSX вы можете создавать жесткие ссылки на каталоги.Вот как работает Time Machine.Я хотел бы знать, какие каталоги имеют жесткие ссылки на них, чтобы я мог видеть, какие каталоги являются новыми для Time Machine.

Я пробовал ls -l и stat -f "%l %N" *, но ни один из них не дает правильных ответов.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

3 голосов
/ 13 июня 2011

ls -l - это правильный способ отображения файлов жестких ссылок в каталоге.

Из статьи Википедии о жестких ссылках :

Большинство современных операционных системне допускайте жестких ссылок на каталоги для предотвращения бесконечной рекурсии.Кроме того, жесткие ссылки на каталоги могут привести к несогласованности записей родительского каталога.Заметным исключением является Mac OS X 10.5 (Leopard), который использует жесткие ссылки на каталоги только для механизма резервного копирования Time Machine.Вместо этого обычно используются символические ссылки и точки соединения NTFS.

1 голос
/ 14 июня 2011

Я не думаю, что даже Time Machine может жестко связывать файловые системы по определению. Я считаю, что создание жесткой ссылки просто создает файл (или каталог) с тем же номером инода, что и оригинал, а иноды уникальны только в пределах данной файловой системы.

Я не думаю, что есть какой-либо способ подсчитать, сколько символических ссылок существует на файл или каталог, поскольку могут быть символические ссылки на файлы, которые находятся на размонтированных томах.

Обновление: при создании каталога автоматически появляются две жесткие ссылки на него. Один из самого каталога (".") И один из его родительского ("..") Выполнение ls -ld в каталоге даст вам количество жестких ссылок на него.

...