Де зберігаються назви файлів у файловій системі?


44

Де зберігаються назви файлів у файловій системі?

Це не в inode або з фактичним вмістом файлу, оскільки у нас є міцне посилання, що дві назви файлів можуть вказувати на один і той же inode.


4
Строго кажучи, це повністю залежить від того, про яку файлову систему ви говорите. Не всі вони мають індекси (або навіть каталоги).
Майкл Боргвардт

NTFS або FAT12 /
16/32

Багато файлів мають більше імен у кількох каталогах. Усі файли каталогів типів мають щонайменше 2 імені, одне з яких знаходиться .в собі.
Стефан Шазелас

@ LưuVĩnhPhúc, ntfs робить .. це просто називає це MFT-записом, але це значною мірою inode.
psusi

Відповіді:


61

Я не знайшов відповідного дубліката, ось ось відповідь на ваше запитання.

Імена файлів та каталогів

витяг

Назви файлів та наслідки каталогу:

  • inode не містять імен файлів, лише інші метадані файлів.
  • Каталоги Unix - це списки структур асоціацій, кожна з яких містить одне ім'я файлу та одне число inode.
  • Драйвер файлової системи повинен здійснити пошук у каталозі, який шукає певне ім'я файлу, а потім перетворити ім'я файлу у правильний відповідний номер вводу.

Джерело: Сторінка Вікіпедії на Inode

Отже, ім'я файлу зберігається в інформаційній структурі каталогів. Наприклад:

                         ss fs

Структура каталогу

витяг

У файловій системі EXT2 каталоги - це спеціальні файли, які використовуються для створення та утримання шляхів доступу до файлів у файловій системі. На малюнку 9.3 показано компонування запису каталогу в пам'яті.

Файл каталогів - це список записів каталогів, кожен з яких містить таку інформацію:

  • inode - inode для цього запису каталогу. Це індекс в масиві inode, що знаходиться в таблиці Inode групи блоків. На малюнку 9.3 запис каталогу для файлу, який називається, має посилання на номер inode i1,
  • ім'я довжини - довжина цього каталогу в байтах,
  • name - назва цього каталогу.

Перші два записи для кожного каталогу завжди є стандартними .та ..записами, що означають відповідно "цей каталог" та "батьківський каталог".

Ось малюнок 9.3 посилання вище:

                 ss №2

Джерело: Документаційний проект Linux: Файлова система

Список літератури


9

Ім'я файлу зберігається у відповідному каталозі ("файл каталогу"). Цей вхід вказує на inode.


1
Я не бачу, як цілі символьного посилання можуть опинитися у записах каталогу. Ціль символьної посилання може бути знайдена в індеті символьної посилання, але не в (будь-якій) записи в каталог, до якої посилання пов'язане, що не має сенсу.
Stéphane Chazelas

@ StéphaneChazelas, саме посилання просто містить іншу назву, яку слід відкрити замість цього. Пошук імен починається знову з нового імені, яке (якщо воно взагалі існує) є десь записом каталогу.
psusi

1

Ім'я файлу зберігається у структурі даних "каталог", яка має "(рядок) ім'я файлу" та відповідне "(int) inode". Каталог відповідає за відображення імені файлу -> inode. а в ode відповідає за відображення сектору inode -> на диску.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.