Ноу Інти, лекція, робота з файловою системою

Файл та його імена: посилання

жорсткі посилання

Приклад 4.12. Створення жорстких посилань

Мефодій створив в своєму домашньому каталозі жорстке посилання з ім'ям "text- hardlink" на файл "text", який знаходиться в підкаталозі "examples". Вивівши докладний список файлів поточного каталогу і його підкаталогів ( "ls -lR"), Мефодій звернув увагу, що у файлів "text" і "text- hardlink" збігаються і розмір ( "653"), і час створення. Це його зовсім не здивувало, оскільки він знає, що тепер "/ home / methody / text- hardlink" і "/ home / methody / examples / text" - це два імені одного і того ж файлу. У детальному описі, виведеному командою "ls -l", Мефодію залишилися незрозумілі тільки два перших поля. Як пояснив Гуревич, перше "слово", що складається з знаків "-drwx", - це позначення прав доступу до файлу, про які йтиметься в лекції 6. А наступне за ним число - кількість жорстких посилань на даний файл або каталог. У "text" і "text- hardlink" стоїть число "2" - у цього файлу два імені.

Доступ до одного і того ж файлу за допомогою декількох імен може знадобитися в наступних випадках:

  1. Одна і та ж програма відома під кількома іменами.
  2. Доступ користувачів до деяких каталогах в системі може бути обмежений з міркувань безпеки. Однак якщо все ж потрібно організувати доступ користувачів до файлу, який знаходиться в такому каталозі. можна створити жорстке посилання на цей файл в іншому каталозі.
  3. Сучасні файлові системи навіть на домашніх персональних комп'ютерах можуть налічувати до декількох десятків тисяч файлів і тисячі каталогів. Зазвичай у таких файлових систем складна багаторівнева ієрархічна організація - в результаті шляху до багатьох файлів стають дуже довгими. Щоб організувати більш зручний доступ до файлу, який знаходиться дуже "глибоко" в ієрархії каталогів. також можна використовувати жорстку посилання в більш доступному каталозі.
  4. Повне ім'я деяких програм може бути вельми довгим (наприклад, i586-alt-linux-gcc-3.3), до таких програм зручніше звертатися за допомогою скороченого імені (жорсткої посилання) - gcc-3.3.

індексні дескриптори

Індексний дескриптор - це опис файлу, в якому міститься:

  • тип файлу (звичайний файл, каталог. файл-дірка і т. д.);
  • права доступу до файлу;
  • інформація про те, кому належить файл;
  • позначки про час створення, модифікації, останнього доступу до файлу;
  • розмір файла;
  • покажчики на фізичні блоки на диску, що належать цьому файлу - в цих блоках зберігається "вміст" файлу.

Всі індексні дескриптори пронумеровані, тому номер індексного дескриптора - це унікальний ідентифікатор файлу в файлової системі - на відміну від імені файлу (жорсткої посилання на нього), яких може бути кілька. Дізнатися номер індексного дескриптора будь-якого файлу можна за допомогою все тієї ж утиліти ls з ключем -i:

Приклад 4.13. Інформація про індексних дескрипторах файлів

Мефодій вирішив поцікавитися номерами індексних дескрипторів файлу "text" і жорсткої посилання на нього "text- hardlink" - він виявив, що ці номери збігаються ( "127705"), тобто цим двом іменам відповідає один індексний дескриптор. т. е. один і той же файл.

Всі операції з файлової системою - створення, видалення і переміщення файлів - виробляються насправді над індексними дескрипторами. а імена потрібні тільки для того, щоб користувач міг легко орієнтуватися в файлової системі. (Було б дуже незручно запам'ятовувати багатозначний номер кожного потрібного файлу або каталогу.) Більш того, ім'я (або імена) файлу в його індексному дескрипторі не зазначені. У файлової системи Ext2 імена файлів зберігаються в каталогах. кожен каталог являє собою список імен файлів і номерів їх індексних дескрипторів. Жорстке посилання (ім'я файлу, що зберігається в каталозі) можна представляти як каталожну картку, на якій вказано номер індексного дескриптора - ідентифікатор файлу.

Символьні посилання

У жорстких посилань є два суттєвих обмеження:

Cімвольную посилання можна створити за допомогою команди ln з ключем "-s" (скорочення від "symbolic"):

Приклад 4.14. Створення символьних посилань

Приклад 4.15. Розкриття символьних посилань

Схожі статті