Где в Linux хранится название файла?

«Где в Linux хранится название файла?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Имя файла хранится не в самом файле, а в записи каталога (директории), который является специальным файлом, содержащим список сопоставлений имён файлов → inode номеров.

Как это работает:

  1. Inode — структура данных на диске, хранящая метаданные файла (права, владелец, timestamps, указатели на блоки данных), но НЕ имя файла.
  2. Каталог — файл особого типа, содержащий таблицу записей вида (имя_файла, номер_inode).

Практическая проверка:

# Показать inode файла (первое число в выводе)
ls -i myfile.txt

# Подробная информация об inode
stat myfile.txt

# Просмотреть raw-содержимое каталога (имена и inode)
ls -la -i .

Пример: Если файл report.pdf имеет inode 123456, то в каталоге будет запись ("report.pdf", 123456). Жёсткие ссылки (hard links) — это дополнительные записи в каталогах, указывающие на тот же inode.

Для DevOps: Понимание этой структуры важно для:

  • Отладки проблем с файловой системой (например, когда ls показывает файл, но он "не удаляется" — возможно, остались hard links).
  • Работы с инструментами мониторинга дискового пространства (они оперируют inode'ами).
  • Настройки веб-серверов и приложений, кэширующих информацию о файлах.