Выражение «Все - это файл в Linux» - это упрощение.В Linux есть много вещей, которые отображаются в виде файлов, но не совсем «действуют» так, как вы думаете, в обычном смысле.
Блочные файлы (например, /dev/loop0
) являются отличным примером этого, поскольку они используются как способ связи с драйверами устройств.
Тем не менее, каталоги - это их собственный «специальный» тип файла, который содержит идентификаторы inode, указывающие на inode файла.Я предполагаю, что простым «доказательством» такого рода будет ls -l
любой каталог, и вы заметите, что большинство (если не все) из них будут иметь размер файла в списке 4096 байт, а не перечислять общий размер его содержимого.
4096 байт - это наименьший размер блока для большинства файловых систем, и его обычно более чем достаточно для размещения всей информации (идентификаторов узлов) каталога.Таким образом, вместо прямой информации / доступа к своим файлам каталог скорее хранит метаданные о них.
В качестве альтернативы, использование stat
в любом каталоге покажет его собственный номер inode (а также количество ссылок, которые у него есть).
РЕДАКТИРОВАТЬ: файлы каталогов содержат идентификатор индекса (указатель на индекс файла), а не сам индекс.Я отредактировал ответ.