В вычислениях индексный узел (индексный узел) - это структура данных, встречающаяся во многих файловых системах Unix. Каждый индексный дескриптор хранит всю информацию об объекте файловой системы (файл, узел устройства, сокет, канал и т. Д.), За исключением содержимого данных и имени файла.

Файловая система полагается не только на содержимое файла, но и на структуры данных о файлах. Первые называются метаданными - данными, описывающими данные. Каждый файл связан с индексным дескриптором, который идентифицируется целым числом, часто называемым i-номером или номером индексного дескриптора. Inodes хранит информацию о файлах и каталогах (папках), такую ​​как права собственности на файлы, режим доступа (права на чтение, запись, выполнение) и тип файла. Во многих типах реализаций файловых систем максимальное количество inodes фиксируется при создании файловой системы, ограничивая максимальное количество файлов, которое может содержать файловая система. Типичная эвристика распределения для индексных дескрипторов в файловой системе составляет один процент от общего размера. Номер inode индексирует таблицу inode в известном месте на устройстве; от номера inode,часть ядра, драйвер файловой системы, может получить доступ к содержимому индексного дескриптора, включая расположение файла, обеспечивающего доступ к файлу. Номер inode файла можно найти с помощью команды ls -i. Команда ls -i печатает номер i-узла в первом столбце отчета.

Имена файлов и значения каталогов:

  • inodes не содержат имен файлов, только метаданные файлов.
  • Каталоги Unix - это списки ассоциативных структур, каждая из которых содержит одно имя файла и один номер inode.
  • Драйвер файловой системы должен искать в каталоге конкретное имя файла, а затем преобразовывать имя файла в соответствующий номер inode.

Примеры

$ touch "test"  #no spaces
$ touch "test " #spaces in the end
$ ls -il test*
1079211 -rw-r--r-- 1 root users 0 Oct 12 15:13 test 
1079212 -rw-r--r-- 1 root users 0 Oct 12 15:13 test

Первый столбец - это индексный дескриптор. Это можно показать двумя способами:

$ stat filename
$ ls -i filename

Удаление имени файла с использованием inode:

find -inum inodenumber -exec rm {} \;

Ссылки

Введение в Inodes