Все буде Україна!

Типи файлів у Linux

  Юрій  | 

  Оновл. 25 Чер 2022  | 

 70

При навігації по файловій системі в Linux, ви обов’язково стикатиметеся з різними типами файлів. Найчастіше використовувані типи — це звичайні файли та каталоги. Однак, крім них, у Linux також існують ще 5 спеціальних типів.

Ідентифікація типів файлів у Linux

Для визначення типу файлу достатньо скористатися всього лише однією командою:

$ ls -ld <ім'я_файлу>

Наприклад:

$ ls -ld /etc/services
-rw-r--r-- 1 root root 19281 Feb 14  2012 /etc/services

Команда ls покаже тип файлу першим символом зі списку. В даному випадку цим символом є -, що означає “звичайний файл”. У Linux важливо не плутати типи файлів з їх розширеннями.

Типи файлів у Linux

Нижче наведено короткий опис 7 різних типів файлів у Linux:

   - — звичайний файл;

   d — каталог;

   c — символьний пристрій;

   b — блоковий пристрій;

   s — (локальний) сокет;

   p — іменований канал;

   l — символьне посилання.


Звичайний файл

Позначається як -

Звичайний файл — це найпоширеніший тип файлів у Linux. Текстові файли, зображення, двійкові файли, спільні бібліотеки та ін. — все перераховане належить до звичайного типу файлів. Ви можете створити звичайний файл за допомогою команди touch:

diego@debian:~$ touch acode.txt
diego@debian:~$ ls -ld acode.txt
-rw-r--r-- 1 diego diego 0 фев 20 11:14 acode.txt

Перший символ виводу команди ls, в даному випадку -, означає, що перед нами звичайний файл. Для видалення звичайного файлу використовується команда rm (скор. від «remove»):

diego@debian:~$ rm acode.txt
diego@debian:~$ ls -ld acode.txt
ls: невозможно получить доступ к 'acode.txt': Нет такого файла или каталога


Каталог

Позначається як d

Каталог — це другий за поширеністю тип файлів у Linux. Каталог можна створити за допомогою команди mkdir (скор. від «make directory»):

diego@debian:~$ mkdir acode
diego@debian:~$ ls -ld acode
drwxr-xr-x 2 diego diego 4096 фев 20 12:14 acode

Як пояснювалося раніше, каталогу відповідає символ d (від «directory») вихідних даних команди ls. Для видалення пустого каталогу використовується команда rmdir (скор. від «remove directory»):

diego@debian:~$ rmdir acode
diego@debian:~$ ls -ld acode
ls: невозможно получить доступ к 'acode': Нет такого файла или каталога

При спробі видалити каталог, що містить у собі файли, ви отримаєте повідомлення про помилку:

diego@debian:~$ mkdir acode
diego@debian:~$ touch /home/diego/acode/acode.txt
diego@debian:~$ rmdir acode
rmdir: не удалось удалить 'acode': Каталог не пуст

В даному випадку вам потрібно використати команду rm -r:

diego@debian:~$ rm -r acode/
diego@debian:~$ ls -ld acode
ls: невозможно получить доступ к 'acode': Нет такого файла или каталога
diego@debian:~$


Символьний пристрій

Позначається як c

Символьні та блокові файли пристроїв дозволяють користувачам та програмам взаємодіяти з апаратними периферійними пристроями. При цьому символьні пристрої забезпечують послідовний потік вводу або виводу:

diego@debian:~$ sudo ls -ld /dev/urandom
crw-rw-rw- 1 root root 1, 9 фев 20 12:49 /dev/urandom

У цьому прикладі символьним пристроєм є генератор псевдовипадкових чисел.


Блоковий пристрій

Позначається як b

Блокові пристрої нагадують символьні. Найчастіше вони керують апаратними пристроями, такими як жорсткі диски, пам’ять тощо. Більшість з них розміщені в каталозі /dev:

diego@debian:~$ ls -ld /dev/sda
brw-rw---- 1 root disk 8, 0 фев 20 12:49 /dev/sda


Локальні сокети

Позначаються як s

Як правило, локальні сокети використовуються для зв’язку між такими службами, як X Window, syslog тощо.

$ ls -ld /dev/log
srw-rw-rw- 1 root root 0 Jan  4 10:13 /dev/log


Іменовані канали

Позначаються як p

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


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

Позначаються як l

За допомогою символьних посилань адміністратор призначає декілька ідентифікаторів файлу або каталогу. Символьне посилання можна розглядати як вказівник на вихідний файл.

Існує два типи символьних посилань в Linux:

   М’яке посилання є вказівником на деякий файл або каталог (подібно ярликам у Windows). Якщо ви перемістите файл, зв’язок із символьним посиланням розірветься (але саме посилання все ще існуватиме, вказуючи на файл, якого немає). Якщо ви заміните файл іншим, зберігши ім’я, символьне посилання вказуватиме на новий файл. Символьні посилання можуть охоплювати різні розділи файлової системи.

   Жорстке посилання прив’язується тільки до файлів, охоплює лише один розділ файлової системи і, по суті, є тим самим файлом, на який посилається.

Для створення символьного м’якого посилання використовується команда ln -s:

diego@debian:~$ echo file1 > file1
diego@debian:~$ ln -s file1 file2
diego@debian:~$ cat file2
file1
diego@debian:~$ ls -ld file2
lrwxrwxrwx 1 diego diego 5 фев 20 14:11 file2 -> file1

Для видалення символьного посилання можна використати команду unlink або rm.


Висновки

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

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (Немає Оцінок)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *