Когда файл записывается на диск, это происходит с помощью низкоуровневого системного вызова, подобного write()
, и операционные системы точно знают, сколько байтов они записывают в данный файл на диске.Эта информация, а также некоторые другие (дата создания и модификации, право собственности и т. Д.) Записываются вместе с файлом.
В linux (и, как правило, в unix), это с помощью inode
, который полностью описываетфайл.Информация, хранящаяся в этих inodes
:
* режим доступа
* идентификаторы пользователя и группы, которым принадлежит файл
* размер в байтах
* дата создания, изменения и доступа
*список дисковых блоков, содержащих данные файла
Это более или менее информация, отображаемая с помощью ls -l
Вы также можете увидеть номер инода каждого файла с помощью ls -i
Вы можете найти здесь дополнительные сведения о inode.
Другая информация кодируется по-другому.Например, имена находятся только в специальных файлах, описывающих каталог, а не в inode.Каталог - это действительно список, который связывает имя с inode
.
Значки, как правило, определяются в масштабе всей системы, и связь значка с файлом выполняется либо с именем файла (и расширением файла), либо с типом файла "type", который записывается в "inode
" (илиего эквивалент в других ОС).