В Linux всё является файлом!

  1. Обычные файлы (Regular files):
  2. Директории (Directories):
  3. Специальные файлы (Special Files):
    1. Символьные файлы (Character Devices):

      • Символьные файлы представляют собой устройства, которые передают или принимают поток символов (байт) в последовательном порядке. Такие устройства, как терминалы, порты последовательной связи (COM-порты), звуковые карты, являются символьными устройствами.

      • Пример:

        /dev/ttyS0 - символьное устройство для первого последовательного порта.

    2. Блочные файлы (Block Devices):

      • Блочные файлы представляют собой устройства, которые передают или принимают блоки данных, обычно размером несколько килобайт или более. Жесткие диски, SSD, USB-накопители - это примеры блочных устройств.

      • Пример:

        /dev/sda - блочное устройство для первого жесткого диска.

    3. Ссылки (Links):

      • Жёсткие (Hard Links):

        • Жёсткие ссылки представляют собой дополнительные имена (пути) для существующего файла. Удаляя одну ссылку, файл остается до тех пор, пока существует хотя бы одна ссылка на него.

        • Пример:

          ln /path/to/originalfile /path/to/hardlink

      • Мягкие (Symbolic Links):

        • Мягкие ссылки (символические) представляют собой специальный файл, который содержит путь к другому файлу. Если цель удалена, мягкая ссылка становится битой.

        • Пример:

          ln -s /path/to/targetfile /path/to/symlink

    4. Сокет-файлы (Sockets):

      • Сокет-файлы предоставляют механизм для обмена данными между процессами через сеть или локально в рамках одной системы. Сокеты используются для межпроцессного взаимодействия (IPC).

      • Пример:

        /var/run/docker.sock - сокет Docker, используемый для взаимодействия с Docker демоном.

    5. Именованные каналы (Named Pipes):

      • Именованные каналы (FIFO) представляют собой специальный тип файла, который используется для установления однонаправленного или двунаправленного канала связи между процессами.

      • Пример:

        Создание именованного канала: mkfifo /path/to/myfifo

    6. Дверь (Door):

      • Дверь (door) представляет собой механизм межпроцессного взаимодействия, предоставляющий более сложные возможности, чем именованные каналы. Однако, дверь не так широко используется, и её использование часто ограничено определенными сценариями.

      • Пример:

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

Команда file в Linux используется для определения типа файла. Она позволяет узнать, к какой категории относится файл, например, текстовый файл, исполняемый файл, изображение и т.д.

Используя команду ls -l (или ll) также можно получить информацию о типе файла: