Утилиты CLI, создание файлов: команда mknod
Команда mknod
предназначается для создания файлов специального типа -- файлов устройств. В качестве аргументов она требует:
- имени устройства в форме
/dev/dev_name
; - указания его типа -- символьного --
c
(например, виртуальные терминалы) или блочного --b
(например, дисковые накопители и их разделы); - старшего номера (major) -- уникального идентификатора, характеризующего родовую группу устройств (например,
4
-- идентификатор виртуальных терминалов); - младшего номера (minor), являющегося идентификатором конкретного устройства в своей группе (например, младший номер
0
в группе старшего номера4
-- идентификатор первой, системной, виртуальной консоли, а63
-- идентификатор последней теоретически возможной из них).
Кроме стандартных, команда mknod
имеет только одну опцию -m
(--mode
), с помощью которой устанавливаются атрибуты доступа к создаваемому файлу устройства (точно также, как это было описано для команды mkdir
). Таким образом, команда
$ mknod --mode=200 /dev/tty63 c 4 63
создаст файл устройства для последней теоретически возможной виртуальной консоли. Что, впрочем, не значит, будто бы сразу после этого в нее можно переключаться -- предварительно следует внести должные изменения в скрипты инициализации.
На практике команда mknod
часто используется в опосредованном виде -- в составе сценария /dev/MAKEDEV
, автоматизирующего процесс создания файлов устройств. В частности, он делает ненужным знание старшего и младшего номеров устройств. Правда, только для тех из них, которые были предусмотрены при разработке сценария. Если же требуемое устройство не входит в число охваченных данным вариантом /dev/MAKEDEV
, использования команды mknod
в явном виде не избежать. Правда, все более широкое внедрение файловой системы devfs
(в BSD-системах) или (в Linux) механизма udev
, позволяющих создавать файлы устройств при загрузке (причем -- только реально существующих в системе) или "на лету", при "горячем" подключении, грозят сделать команду mknod
анахронизмом. Тем не менее, для таких систем, как OpenBSD и DragonFlyBSD она остаётся актуальной.
Содержание . .