отправка вывода в /dev/null

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
time12345
сержант
Сообщения: 224
Зарегистрирован: 2011-09-21 1:23:43

отправка вывода в /dev/null

Непрочитанное сообщение time12345 » 2012-10-06 22:36:46

Всем привет. Прожалуйста, разъясните что делает вторая часть команды

date >/dev/null 2>&1

Код: Выделить всё

echo $SHELL
/bin/csh
и почему при таком раскладе у меня выдается Ambiguous output redirect.

не понимаю почему бы просто не написать так вот:

date >/dev/null

Нашел такой вариент:

Код: Выделить всё

date > & /dev/null
Он работает. Но опять же, хочу понять что собственно здесь происходит, знак > понятен, вывод направляется в /dev/null но что тут делает знак амперсанда, он говорит о том что только если команда date будет успешно выполнена перенаправлять вывод в /dev/null ? а разве /dev/null не все равно?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

spf
ефрейтор
Сообщения: 56
Зарегистрирован: 2009-11-05 15:28:46

Re: отправка вывода в /dev/null

Непрочитанное сообщение spf » 2012-10-07 10:00:07

time12345 писал(а):

Код: Выделить всё

date >/dev/null 2>&1
Это работает в /bin/sh.
Означает то, что 2-ой файловый дескриптор отправить туда же, куда идет 1-ый.
1-ый - это stdout
2-ой - это stderr

Код: Выделить всё

date > & /dev/null
Это работает в /bin/csh.
Делает то же самое, что пример выше. То есть отправляет вывод ошибок туда же, куда идет стандартный вывод.