Типы файлов в Linux

  Дмитрий Бушуев  | 

  Обновл. 1 Мар 2021  | 

 1000

При навигации по файловой системе в 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 ravesli.txt
diego@debian:~$ ls -ld ravesli.txt
-rw-r--r-- 1 diego diego 0 фев 20 11:14 ravesli.txt

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

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


Каталог

Обозначается как d

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

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

Как объяснялось ранее, каталогу соответствует символ d (от «directory») выходных данных команды ls. Для удаления пустого каталога используется команда rmdir (сокр. от «remove directory»):

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

При попытке удалить каталог, содержащий внутри себя файлы, вы получите сообщение об ошибке:

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

В этом случае вам нужно использовать команду rm -r:

diego@debian:~$ rm -r ravesli/
diego@debian:~$ ls -ld ravesli
ls: невозможно получить доступ к 'ravesli': Нет такого файла или каталога
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 (12 оценок, среднее: 4,83 из 5)
Загрузка...

Добавить комментарий

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