Рассказать о типах файлов в ОС Linux

Обновлено: 21.11.2024

«Сколько типов файлов существует в Linux/Unix и какие они? Это частый вопрос каждому человеку, который начинает изучать Linux. Хорошо, почему так важно знать типы файлов?

Ответ: Это потому, что Linux рассматривает все как файл. Когда вы начинаете работать с Linux/Unix, вам приходится иметь дело с различными типами файлов (linux/unix), чтобы эффективно ими управлять

Сколько типов файлов существует в Linux/Unix?

По умолчанию в Unix есть только 3 типа файлов. Они..

Специальные файлы (эта категория имеет 5 подтипов.)

На практике у нас всего 7 типов (1+1+5) файлов в Linux/Unix. А в Солярисе у нас 8 типов. И вы можете увидеть указание типа файла в самой левой части команды «ls -l».

Вот эти типы файлов.

К вашему сведению, есть еще один тип файлов, называемый файлом двери (D), который присутствует в Sun Solaris, как упоминалось ранее. Дверь — это специальный файл для межпроцессного взаимодействия между клиентом и сервером (всего 8 типов на машинах Unix). Мы узнаем о различных типах файлов в приведенной ниже последовательности для каждого типа файла.

Объяснение обычного типа файла в Linux

Это файлы, которые отмечены «-» в выводе команды ls -l в начале строки. И эти файлы.

Как создавать обычные файлы в Linux/Unix?
Ответ: Используйте команду touch/vi, операторы перенаправления и т. д.

Как мы можем перечислить обычные файлы?

Пример списка обычных файлов:

Объяснение типа файла каталога в Linux/Unix

Файлы этого типа содержат обычные файлы/папки/специальные файлы, хранящиеся на физическом устройстве. Файлы этого типа будут выделены синим цветом, а ссылка больше или равна 2.

Пример списка каталогов.

Как их создать?
Ответ: используйте команду mkdir

Блокировать тип файла в Linux

Эти файлы аппаратные, большинство из них находятся в /dev.

Как их создать?
Ответ: Используйте команду fdisk или создайте виртуальный раздел.

Как мы можем перечислить их в моем текущем рабочем каталоге?

ls -l | группа ^b

Пример списка заблокированных файлов (чтобы вы могли увидеть эти файлы, они расположены в /dev).

Файлы устройств персонажей в Linux

Обеспечивает последовательный поток ввода или вывода. Ваши терминалы являются классическим примером для этого типа файлов.

Как мы можем составить список файлов персонажей в моем текущем рабочем каталоге?

ls -l | группа ^c

Пример списка файлов персонажей (расположенных в /dev)

Файлы канала в Linux/Unix

Другое название канала — «именованный» канал, который иногда называют FIFO. FIFO расшифровывается как «First In, First Out» и относится к свойству того, что порядок входящих байтов такой же, как и исходящих. «Имя» именованного канала на самом деле является именем файла в файловой системе.

Как их создать?
Ответ: используйте команду mkfifo.

Как мы можем составить список файлов персонажей в моем текущем рабочем каталоге?

ls -l | группа ^p

Пример списка файлов каналов

файлы символических ссылок в Linux

Это файлы, связанные с другими файлами. Они либо каталог/обычный файл. Номер инода для этого файла и его родительских файлов одинаковы. В Linux/Unix доступно два типа файлов ссылок, т. е. мягкая и жесткая ссылка.

Как их создать?
Ответ: используйте команду ln

Как мы можем перечислить связанные файлы в моем текущем рабочем каталоге?

ls -l | группа ^l

Файлы сокетов в Linux

Файл сокета используется для передачи информации между приложениями в целях связи

Как их создать?
Ответ: Вы можете создать файл сокета, используя системный вызов socket(), доступный в

Пример программирования на C

Вы можете обратиться к этому файлу сокета с помощью sockfd. Это то же самое, что и дескриптор файла, и вы можете использовать системные вызовы read(), write() для чтения и записи из сокета.

Как мы можем перечислить файлы Socket в моем текущем рабочем каталоге?

ls -l | группа ^s

Пример списка файлов сокетов.

srw-rw-rw- 1 root root 0 2010-02-15 09:35 /dev/log

Совет для вас, ребята. Как найти нужный тип файла?

Ответ: используйте команду find с параметром -type. Например, если вы хотите найти файл сокета, просто используйте команду ниже. find / -type s Если вы хотите найти связанный файл, то как? Найти / -введите l

В Linux все рассматривается как файл. В UNIX семь стандартных типов файлов: обычные, каталоги, символические ссылки, специальные FIFO, специальные блочные, специальные символы и сокеты. В Linux/UNIX нам приходится иметь дело с файлами разных типов, чтобы эффективно управлять ими.

  1. Обычные файлы
  2. Файлы каталога
  3. Специальные файлы

Самый простой способ узнать тип файла в любой операционной системе – посмотреть на его расширение, такое как .txt, .sh, .py и т. д. Если у файла нет расширения, в Linux можно использовать файл полезность.В этой статье мы продемонстрируем примеры файловых команд для определения типа файла в Linux.

Чтобы узнать типы файлов, мы можем использовать команду file.

Синтаксис: файл [OPTION…] [FILE…]

Вы можете запустить следующую команду, чтобы проверить версию файловой утилиты:

Мы можем проверить тип файла, введя следующую команду:

Мы можем передать список файлов в одном файле и указать с помощью параметра -f, как показано ниже:

Используя параметр -s, мы можем прочитать специальный файл блока или символа.

При использовании параметра -b имена файлов не добавляются к строкам вывода

При использовании параметра -F в качестве разделителя будет использоваться строка вместо «:».

Использование параметра -L будет следовать символическим ссылкам (по умолчанию, если установлено POSIXLY_CORRECT):

Мы можем использовать параметр –extension, чтобы распечатать разделенный косой чертой список допустимых расширений для найденного типа файла.

Для получения дополнительной информации и вариантов использования вы можете использовать следующую команду:

Мы также можем использовать команду ls для определения типа файла.

Синтаксис:

Типы файлов и объяснение

Обычные файлы

Обычные файлы — это обычные файлы в системе, содержащие программы, тексты или данные. Он используется для хранения такой информации, как текст или изображения. Эти файлы расположены в каталоге/папке. Обычные файлы содержат все читаемые файлы, такие как текстовые файлы, файлы Docx, программные файлы и т. д., двоичные файлы, файлы изображений, такие как JPG, PNG, SVG и т. д., сжатые файлы, такие как ZIP, RAR и т. д.

Пример:

Или мы можем использовать команду «file *», чтобы узнать тип файла

Файлы каталога

Единственной задачей файлов каталогов является хранение других обычных файлов, файлов каталогов и специальных файлов, а также связанной с ними информации. Этот тип файла будет обозначен синим цветом со ссылками, большими или равными 2. Файл каталога содержит запись для каждого файла и подкаталога, которые он содержит. Если у нас есть 10 файлов в каталоге, у нас будет 10 записей в файле каталога. Мы можем перемещаться между каталогами с помощью команды cd

Мы можем узнать файл каталога с помощью следующей команды:

Мы также можем использовать команду файла *

Специальные файлы

1. Блокировать файлы:

Блочные файлы действуют как прямой интерфейс к блочным устройствам, поэтому их также называют блочными устройствами. Блочное устройство — это любое устройство, которое выполняет операции ввода и вывода данных в единицах блоков. Эти файлы являются аппаратными файлами, и большинство из них находятся в каталоге /dev.

Мы можем узнать файл блокировки с помощью следующей команды:

Мы также можем использовать команду файла:

2. Файлы символьных устройств:

Символьный файл — это аппаратный файл, который считывает/записывает данные в файле посимвольно. Эти файлы обеспечивают последовательный поток ввода или вывода и обеспечивают прямой доступ к аппаратным устройствам. Терминал, последовательные порты и т. д. являются примерами файлов этого типа.

Мы можем найти файлы символьных устройств следующим образом:

Мы можем использовать команду file, чтобы узнать тип файла:

3. Файлы каналов:

Другое название канала — «именованный» канал, который иногда называют FIFO. FIFO расшифровывается как «First In, First Out» и относится к свойству того, что порядок входящих байтов такой же, как и исходящих. «Имя» именованного канала на самом деле является именем файла в файловой системе. Этот файл отправляет данные от одного процесса к другому, чтобы процесс-получатель считывал данные в порядке поступления.

Мы можем узнать файл канала с помощью следующей команды:

Мы можем использовать команду file , чтобы узнать тип файла:

4. Файлы ссылок на символы:

Файл символьной ссылки — это тип файла в Linux, который указывает на другой файл или папку на вашем устройстве. Файлы символьных ссылок также называются Symlink и похожи на ярлыки в Windows.

Мы можем найти файл ссылки на символ с помощью следующей команды:

Мы можем использовать команду file, чтобы узнать тип файла:

5. Файлы сокетов:

Сокет — это специальный файл, который используется для передачи информации между приложениями и обеспечивает связь между двумя процессами. Мы можем создать файл сокета, используя системный вызов socket(). Файл сокета находится в /dev корневой папки, или вы можете использовать команду find / -type s для поиска файлов сокета.

Найти тип любого файла или группы файлов с помощью команды «файл»

  • Университет Буффало
  • Университет Денвера
  • Пенсильванский университет

Бывший автор Lifewire Юрген Хаас – разработчик программного обеспечения, специалист по данным и поклонник операционной системы Linux.

Крис Селф (Chris Selph) — сертифицированный CompTIA преподаватель технологии и профессиональный преподаватель информационных технологий. Он также работает администратором сети и сервера и выполняет обслуживание и ремонт компьютеров для многочисленных клиентов.

Что нужно знать

  • Используйте команду файла, за которой следует имя файла.
  • Для нескольких файлов введите команду файла, а затем целевые файлы. Или используйте текстовый редактор, чтобы создать файл со списком имен файлов.
  • В Linux фактический тип файла может полностью отличаться от того, что может подразумевать его расширение.

Linux не использует расширения файлов; скорее, тип файла является частью имени файла. В этой статье объясняется, как узнать истинный тип файла в Linux.

Как использовать команду «файл»

Команда file имеет следующую форму:

Например, чтобы проверить тип заголовка файла touch.svg, выполните следующую команду:

Вывод примерно такой:

touch.svg: изображение масштабируемой векторной графики SVG

Разные типы файлов дают разные результаты, например:

  • Тип файла ODS: электронная таблица OpenDocument
  • Тип файла PDF: PDF-документ, версия 1.4
  • Тип файла CSV: текст ASCII, очень длинные строки, с индикаторами строки CRLF.

Обработка нескольких файлов

По умолчанию команда файла работает с одним файлом. Однако вы можете указать имя файла, содержащее список файлов, которые должны быть обработаны командой файла.

Например, откройте файл с именем testfiles с помощью редактора nano и добавьте в него следующие строки:

  • /etc/пароль
  • /etc/pam.conf
  • /etc/opt

Сохраните файл и выполните следующую файловую команду:

файл -f тестовые файлы

Вывод будет примерно таким:

  • /etc/passwd: текст ASCII
  • /etc/pam.conf: текст ASCII
  • /etc/opt: каталог

Еще один способ — запустить команду file один раз, но с указанием нескольких целей. Например:

файл /etc/passwd /etc/pam.conf /etc/opt

Вывод будет примерно таким:

  • /etc/passwd: текст ASCII
  • /etc/pam.conf: текст ASCII
  • /etc/opt: каталог

Стандартные подстановочные знаки тоже работают. Например, чтобы проверить все файлы в текущем рабочем каталоге, используйте:

Чтобы проверить наличие каталогов, начинающихся с буквы D (с учетом регистра), попробуйте следующее:

Результаты могут быть, например, "Рабочий стол", "Документы" и "Загрузки".

Сжатые файлы

Когда вы запускаете команду file для сжатого файла, вы видите что-то вроде этого:

  • file.zip: данные ZIP-архива, версия не ниже 2.0 для извлечения

Хотя этот результат говорит о том, что файл является архивным, вы не знаете его содержимого. Загляните внутрь zip-файла, чтобы увидеть типы файлов в сжатом файле. Следующая команда запускает команду file для файлов внутри ZIP-файла:

файл -z имя файла

Теперь на выходе отображаются типы файлов в архиве.

Как работает команда «файл»

Команда file запускает три набора тестов для файла:

  • Тесты файловой системы
  • Магические тесты
  • Языковые тесты

Первый набор тестов, возвращающий правильный ответ, предлагает тип файла для печати.

Тесты файловой системы проверяют результат системного вызова stat. Программа проверяет, является ли файл пустым и является ли он специальным файлом. Если тип файла найден в системном заголовочном файле, он возвращается как допустимый тип файла.

Волшебные тесты проверяют содержимое файла и, в частности, несколько байтов в начале, что помогает определить тип файла. Для сопоставления файла с его типом используются различные файлы, которые хранятся в:

  • /etc/магия
  • /usr/share/misc/magic.mgc
  • /usr/share/misc/магия

Заключительные тесты — это языковые тесты. Файл проверяется на предмет того, является ли он текстовым. Проверяя первые несколько байтов файла, тест определяет, является ли файл форматом ASCII, UTF-8, UTF-16 или другим форматом, который идентифицирует файл как текстовый файл. Когда набор символов выведен, файл тестируется на разных языках.

В этом руководстве рассматриваются различные типы файлов в Linux. Узнайте, какие типы файлов поддерживает Linux, и как определить тип файла в Linux.

Тип файла помогает нам определить тип содержимого, сохраненного в файле. Linux поддерживает семь различных типов файлов. Эти типы файлов: обычный файл, файл каталога, файл ссылки, специальный файл символов, специальный файл блока, файл сокета и файл именованного канала.

В следующей таблице представлено краткое описание этих типов файлов.

< /tr>

Давайте подробно рассмотрим эти типы файлов.

Обычные или обычные файлы

Обычные или обычные файлы хранят данные различных типов контента, таких как текст, аудио, видео, изображения, сценарии и программы. Существуют сотни типов контента. В Linux можно создавать обычные файлы с расширением или без него.

Расширение – это группа символов, которая используется в имени файла для придания ему особой идентичности или для объединения его с файлами с похожим типом содержимого. Для облегчения распознавания и обработки файлы с различным содержимым часто используют общеизвестные расширения файлов.

Хотя файловая система Linux не нуждается в расширениях файлов, вы все же должны их использовать. Они помогают нам определять типы контента, хранящегося в файлах. Например, если файл имеет расширение .mp4, вы можете знать, что это видеофайл.

Для просмотра полного списка типов содержимого и расширений файлов, поддерживаемых вашей системой Linux, вы можете просмотреть файл /etc/mime.types. MIME (Многоцелевые расширения почты Интернета) обеспечивает стандартное обозначение и классификацию типов содержимого файлов.

Вы можете использовать любую стандартную команду чтения файла для просмотра содержимого этого файла. Например, следующий синтаксис использует команду cat для чтения этого файла.

На следующем изображении показаны выходные данные этой команды.

Файловая система Linux в основном предназначена для хранения, извлечения и управления обычными файлами. Как правило, все дистрибутивы Linux предоставляют каждому пользователю отдельный каталог для хранения обычных файлов. Этот каталог известен как домашний каталог пользователя. Пользователь может хранить обычные файлы в своем домашнем каталоге.

На следующем изображении показан пример домашнего каталога.

Файлы каталога

Для организации файлов в иерархию файловые системы используют каталоги. Каталоги также являются файлами, но вместо хранения данных они хранят расположение других файлов. Для хранения местоположения файлов, помещенных в каталог, каталог использует записи каталога. Каждая запись каталога хранит имя и расположение одного файла.

Файловая система Linux начинается с каталога с именем / или корневого каталога. Все файлы и файлы каталогов создаются в этом каталоге. За исключением корневого каталога, у каждого каталога есть родительский каталог.

Специальные файлы

Linux рассматривает все аппаратные устройства (например, жесткие диски, принтеры, мониторы, эмуляторы терминалов и приводы CD/DVD) как специальные файлы. Это означает, что прикладная программа может получать доступ к файлам и устройствам и использовать их таким же образом. Эта функция делает разработку программ в Linux проще и гибче.

Linux помещает все специальные файлы или файлы устройств в каталог /dev. Существует два типа специальных файлов: символьный специальный файл и блочный специальный файл. Специальный символьный файл представляет собой устройство, которое передает данные в байтах, такое как монитор или принтер. Блочный специальный файл представляет собой устройство, которое передает данные блоками, например жесткий диск.

Связать файлы

Файлы ссылок позволяют нам использовать файл с другим именем и из другого места. Для этого мы используем файлы ссылок. Файл ссылки — это указатель на другой файл. Существует два типа ссылок: жесткая ссылка и символическая или программная ссылка.

Жесткая ссылка создает зеркальную копию исходного файла. Жесткая ссылка не может быть создана на каталог или файл в другой файловой системе. Мягкая или символическая ссылка создает указатель на исходный файл. Мягкая ссылка может быть создана на каталог или файл в другой файловой системе.

Сокет-файлы

Сокет — это конечная точка связи, которую приложения используют для обмена данными. Например, если приложение хочет установить связь с другим приложением, оно подключается к сокету этого приложения.

Каждое приложение, предоставляющее услуги другим приложениям или удаленным клиентам, использует сокет для приема подключений. Каждый сокет имеет связанный с ним IP-адрес и номер порта, что позволяет ему принимать подключения от клиентов.

Например, если приложение локальной системы хочет установить связь с другим приложением удаленной системы, оно подключается к сокету этого приложения, используя соответствующий IP-адрес и номер порта этого сокета.

Сокеты очень сложны.Чтобы упростить процесс связи между локальными приложениями, Linux использует файлы сокетов. Файлы сокетов позволяют приложениям локальной системы обмениваться данными, минуя сложный процесс работы с сетью и сокетами.

Файлы сокетов — это специальные файлы, в которых в качестве адреса используется имя файла, а не IP-адрес и номер порта. Файлы сокетов используют системные вызовы sendmsg() и recvmsg() для обеспечения межпроцессного взаимодействия между локальными приложениями.

Файлы именованных каналов

Linux позволяет отправлять выходные данные любого процесса или команды другому процессу или команде в качестве входных данных. Эта функция известна как труба. Каналы работают только тогда, когда оба процесса запущены одним и тем же пользователем и существуют в одном родительском пространстве процесса.

Если процессы выполняются под разными именами пользователей и разрешениями, стандартные каналы не работают. В таких случаях используются именованные каналы. Именованные каналы аналогичны стандартным каналам, за исключением того, что к ним можно получить доступ как к части файловой системы.

Файлы именованных каналов — это пустые файлы каналов. Ядро обрабатывает файлы именованных каналов, не записывая их в файловую систему. Файлы именованных каналов могут существовать где угодно в файловой системе. Файлы именованных каналов также известны как файлы FIFO (First In First Out).

Как определить тип файла?

В Linux существует множество способов определить тип файла. Самый простой способ — использовать команду file. Чтобы найти тип файла, укажите имя этого файла в качестве аргумента. Например, чтобы узнать тип файла abc, используйте следующую команду.

В выходных данных этой команды отображается не только тип указанного файла, но и тип содержимого, хранящегося в указанном файле.

Давайте рассмотрим простой пример. Войдите под учетной записью обычного пользователя и скопируйте файлы разных типов в домашнюю директорию. Теперь откройте приглашение оболочки и используйте команду file, чтобы определить тип каждого файла.

На следующем изображении показано это упражнение с результатом.

Вы также можете определить тип файла, просмотрев вывод команды ls -l. Команда ls -l выводит список содержимого указанного файла. Например, следующая команда выводит содержимое текущего каталога.

На следующем изображении показан пример вывода вышеуказанной команды.

В выходном листинге первый символ каждого листинга указывает тип файла. В следующей таблице перечислены символы различных типов файлов.

Тип файла Описание
Обычные или обычные файлы Содержат данные различного типа содержимого например, текст, сценарий, изображение, видео и т. д.
Файлы каталогов Содержат имена и адреса других файлов.
Блочные или символьные специальные файлы Представляют файлы устройств, такие как жесткие диски, мониторы и т. д.
Связать файлы Указать или отразить другие файлы
Файлы сокетов Обеспечить взаимодействие между процессами
Файлы именованных каналов Разрешить процессам отправлять данные другим процессам или получать данные от других процессов.
< /таблица>

На этом уроке все. Если вам понравился этот урок, вы можете поделиться им с друзьями в своей любимой социальной сети.

Читайте также:

Символ Значение
- Обычный или обычный файл
d Файл каталога
l Файл ссылки
b Специальный файл блокировки
p Файл именованного канала
c Специальный файл символов
s Файл сокета