В Unix подібних-операційних системах існує 7 типів файлів:

  • Регулярні файли
  • Символьне посилання
  • Каталог
  • FIFO
  • Сокет
  • Block special
  • Character special.

Тип файлу можна визначити за допомогою команди ls -l, яка відображає тип у першому символі поля дозволів файлової системи. Для звичайних файлів Unix не надає будь-якої внутрішньої файлової структури. Тому їх структура та інтерпретація повністю залежать від програмного забезпечення, яке їх використовує. Однак команду file можна використовувати, щоб визначити, який тип даних вони містять.

Регулярні файли ред.

Регулярні файли відображаються в ls -l з дефісом мінус у звичайній формі:

  $ ls -l /etc/passwd

-rw-r--r-- /etc/passwd

 


Символьне посилання (symbolic link) ред.

Символьне посилання - це посилання на інший файл. Цей спеціальний файл зберігається як текстове представлення шляху до файлу, на який посилається (це означає, що місце призначення може бути відносним шляхом, а може не існувати взагалі).[1]

Символічне посилання позначається l (нижній регістр L).

  lrwxrwxrwx ... termcap -> /usr/share/misc/termcap

lrwxrwxrwx ... S03xinetd -> ../init.d/xinetd

 

Каталог (directory) ред.

Найпоширенішим спеціальним файлом є каталог. Макет файлу каталогу визначається використовуваною файловою системою. Оскільки в Unix доступні декілька файлових систем, як власних, так і невласних, тому не існує одного макета файлів каталогу. Каталог позначається буквою d як першою літерою в полі режиму у виводі ls -dl або stat, наприклад:

  $ ls -dl /

drwxr-xr-x 26 root root 4096 Sep 22 09:29 /

$ stat /

 File: "/"
 Size: 4096            Blocks: 8          IO Block: 4096   directory
 



FIFO (named pipe) ред.

Однією з сильних сторін Unix завжди була міжпроцесна комунікація. Це добре, якщо обидва процеси існують в одному і тому ж батьківському просторі процесу, запущеному одним користувачем, але існують обставини, коли комунікаційні процеси повинні використовувати FIFO, які тут називаються іменованими каналами. .[2]

Іменовані канали — це спеціальні файли, які можуть існувати в будь-якому місці файлової системи. Їх можна створити за допомогою команди mkfifo, як у mkfifo mypipe. Іменований канал позначається буквою p як першою літерою рядка режимів.

  prw-rw---- ... mypipe  

Сокет (Socket) ред.

Сокет — це спеціальний файл, який використовується для міжпроцесного зв'язку, який забезпечує зв'язок між двома процесами. Ще процеси можуть надсилати дескриптори файлів через підключення домена Unix за допомогою системних викликів sendmsg() і recvmsg().[3]

На відміну від іменованих каналів, які дозволяють лише односпрямований потік даних, сокети повністю підтримують двосторонній. Сокет позначається символом s як перша літера рядка режимів, наприклад:

  srwxrwxrwx /tmp/.X11-unix/X0  


Device file (block, character) ред.

У Unix майже всі речі обробляються як файли і мають місце у файловій системі, навіть апаратні пристрої, такі як жорсткі диски. Винятком є мережеві пристрої, які не з'являються у файловій системі, а обробляються окремо. Файли пристрою використовуються для застосування прав доступу до пристроїв і для спрямування операцій над файлами до відповідних драйверів пристроїв.

Unix розрізняє символьні пристрої та блокові пристрої. Відмінності приблизно такі: символьні пристрої забезпечують лише послідовний потік введення або приймають послідовний потік виведення, а блокові пристрої доступні випадковим чином.

Символьний пристрій позначається символом c як перша літера рядка режимів. Аналогічно, блочний пристрій позначається буквою b, наприклад:

  crw------- ... /dev/null

brw-rw---- ... /dev/sda

 


Door ред.

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

Door позначаються буквою D (верхній регістр) як перша літера рядка режимів, наприклад:

  Dr--r--r-- ... name_service_door  




Примітки ред.

  1. https://uk.wikipedia.org/wiki/Символьне_посилання
  2. Архівована копія. Архів оригіналу за 21 березня 2022. Процитовано 13 січня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Архівована копія. Архів оригіналу за 16 травня 2021. Процитовано 13 січня 2022.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)