Мой вывод ls -l :

drwxr-xr-x 2 dario dario 4096 Sep 14 13:15 d1
-rw-r--r-- 1 dario dario    0 Sep 14 13:18 file1

Почему files = 1?

d1 пуст. Зачем показывать 2?

2 ответа2

2

Число 1 для file1 говорит, что нет другой жесткой ссылки на этот файл. Если unlink или rm это file1 в текущем каталоге , то его содержимое будет помечено как свободное место на диске и в конечном итоге перезаписаны. Если бы было две другие жесткие ссылки, то общее число было бы 3 и это то, что вы увидите.

Число 2 для каталога d1 несколько похоже. В Linux вы не можете свободно создавать жесткие ссылки на каталоги, хотя (почти) в каждом каталоге есть как минимум два:

  • его "имя" в родительском каталоге (в данном случае d1 ),
  • . само по себе;
  • дополнительно .. в каждом из его подкаталогов (в данном случае их нет).

Обратите внимание, что .. в самой d1 не влияет на это число. Это способствует подсчету ссылок родительского каталога d1 .

Исключением является / . У него нет родительского каталога, но . и .. в / ссылаются на / , так что у вас еще есть две ссылки плюс одна для каждого подкаталога.

Вот как это работает в файловой системе ext семьи. Другие файловые системы могут вести себя по-другому. Например, btrfs обычно показывает 1 для каталогов.

0

Каждый каталог содержит как минимум две записи. Это:

. (текущий каталог) и,

.. (родительский каталог).

file1 имеет одну ссылку, указывающую на него

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .