Книга: Искусство программирования на языке сценариев командной оболочки

Глава 28. /dev/zero и /dev/null

/dev/null

Псевдоустройство /dev/null -- это, своего рода, "черная дыра" в системе. Это, пожалуй, самый близкий смысловой эквивалент. Все, что записывается в этот файл, "исчезает" навсегда. Попытки записи или чтения из этого файла не дают, ровным счетом, никакого результата. Тем не менее, псевдоустройство /dev/null вполне может пригодиться.

Подавление вывода на stdout.

cat $filename >/dev/null

# Содержимое файла $filename не появится на stdout.

Подавление вывода на stderr (from Пример 12-2).

rm $badname 2>/dev/null

# Сообщение об ошибке "уйдет в никуда".

Подавление вывода, как на stdout, так и на stderr.

cat $filename 2>/dev/null >/dev/null

# Если "$filename" не будет найден, то вы не увидите сообщения об ошибке.

# Если "$filename" существует, то вы не увидите его содержимое.

# Таким образом, вышеприведенная команда ничего не выводит на экран.

#

# Такая методика бывает полезной, когда необходимо лишь проверить код завершения команды

#+ и нежелательно выводить результат работы команды на экран.

#

# cat $filename &>/dev/null

# дает тот же результат, автор примечания Baris Cicek.

Удаление содержимого файла, сохраняя, при этом, сам файл, со всеми его правами доступа (очистка файла) (из Пример 2-1 и Пример 2-2):

cat /dev/null > /var/log/messages

# : > /var/log/messages дает тот же эффект, но не порождает дочерний процесс.

cat /dev/null > /var/log/wtmp

Автоматическая очистка содержимого системного журнала (logfile) (особенно хороша для борьбы с надоедливыми рекламными идентификационными файлами ("cookies")):

Оглавление книги


Генерация: 0.042. Запросов К БД/Cache: 0 / 1
поделиться
Вверх Вниз