/dev/null

/dev/null — специальный файл в операционных системах класса UNIX, представляющий собой так называемое «пустое устройство». Запись в него происходит успешно независимо от объёма «записанной» информации. Чтение из /dev/null эквивалентно считыванию конца файла (EOF).

Файл UNIX-устройства
/dev/null
Тип символьное (c)
Коды
ОС major minor
Solaris 13 2
Linux, FreeBSD 1 3
Специальные файлы устройств

В DOS есть псевдофайл NUL с аналогичными свойствами[1].

Создание

править

Псевдоустройство /dev/null считается символьным. Оно создаётся с помощью утилиты mknod следующим образом:

В Linux:

mknod FILE c 1 3

В FreeBSD:

mknod FILE c 0 27

В Solaris:

mknod FILE c 13 2

Здесь FILE — имя для нового пустого устройства. На этапе установки системы оно создаётся таким образом со «стандартным» именем /dev/null.

Примеры использования

править
  • Чаще всего перенаправление в /dev/null используется для подавления стандартного вывода (выходного потока) и/или вывода сообщений об ошибках (потока диагностики) программы их перенаправлением в /dev/null; такое подавление чаще всего используется в командных сценариях (англ. shell scripts) для подавления нежелательного вывода на консоль.

Вывод потока стандартного вывода (STDOUT) и потока ошибок (STDERR) в /dev/null:

сделать что-то > /dev/null 2>&1

В современных оболочках Bash для перенаправления стандартного вывода (STDOUT) и потока ошибок (STDERR) в /dev/null рекомендуется применять:

сделать что-то &> /dev/null

Вывод потока ошибок (STDERR) в /dev/null:

сделать что-то 2> /dev/null
  • Запуск программы reader, ожидающей в качестве обязательного параметра имя файла ввода, без такового.
 reader /dev/null
  • Проверка доступности всех файлов в каталоге foo и его подкаталогах для чтения.
 find foo/ -type f -readable > /dev/null
  • Очень удобно использовать для обнуления файлов большого размера, например почтовых ящиков:
 cp /dev/null /var/mail/mike

Жаргон

править

На жаргоне системных администраторов и разработчиков программного обеспечения null ассоциируется с отсутствием информации. Например, «моя почта сохраняется на null» означает, что вся поступающая почта удаляется, «шлите жалобы на null» означает не беспокоить жалобами, «шлите пожертвования на null» означает, что пожертвования не принимаются, а «redirect to null» означает послать подальше или игнорировать.

См. также

править

Примечания

править
  1. Redirecting error messages from Command Prompt: STDERR/STDOUT (англ.). docs.microsoft.com. Дата обращения: 8 мая 2021. Архивировано 6 мая 2021 года.