Мой вывод 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
?
Мой вывод 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
?
Число 1
для file1
говорит, что нет другой жесткой ссылки на этот файл. Если unlink
или rm
это file1
в текущем каталоге , то его содержимое будет помечено как свободное место на диске и в конечном итоге перезаписаны. Если бы было две другие жесткие ссылки, то общее число было бы 3
и это то, что вы увидите.
Число 2
для каталога d1
несколько похоже. В Linux вы не можете свободно создавать жесткие ссылки на каталоги, хотя (почти) в каждом каталоге есть как минимум два:
d1
),.
само по себе;..
в каждом из его подкаталогов (в данном случае их нет).Обратите внимание, что ..
в самой d1
не влияет на это число. Это способствует подсчету ссылок родительского каталога d1
.
Исключением является /
. У него нет родительского каталога, но .
и ..
в /
ссылаются на /
, так что у вас еще есть две ссылки плюс одна для каждого подкаталога.
Вот как это работает в файловой системе ext
семьи. Другие файловые системы могут вести себя по-другому. Например, btrfs
обычно показывает 1
для каталогов.
Каждый каталог содержит как минимум две записи. Это:
.
(текущий каталог) и,
..
(родительский каталог).
file1
имеет одну ссылку, указывающую на него