Всегда перенаправлять ошибку в / dev / null

22

Я знаю, что могу перенаправить сообщения об ошибках из команды, /dev/nullиспользуя следующий синтаксис:

command arg1 arg2 2>/dev/null

Но есть ли способ сделать это по умолчанию, чтобы сообщения об ошибках всегда отправлялись /dev/null, если я не укажу иначе?

Ричард
источник
1
Вкратце: да - перенаправить / dev / stderr в / dev / null. Но, если вы не можете понять это самостоятельно, вы не должны пытаться, так как у вас больше шансов что-то сломать, чем добиться успеха.
Benubird
@Benubird stderr! = / Dev / stderr. Перенаправление этого файла ничего не даст. Файл в / dev / просто для удобства.
Крис Даун
@ChrisDown вы правы, / dev / stderr это просто ссылка. Тем не менее, многие процессы пишут об этом вместо fd / 2, который вы также можете перенаправить. От этого становится все сложнее - поэтому я оставил комментарий вместо ответа :).
Benubird

Ответы:

29

Многие программы отправляют вывод в stderr, который фактически не указывает на ошибки. Например, в некоторых программах он используется для отображения информации, которая в противном случае повлияет на вывод программы (которая предназначена для передачи в другую программу). Вы можете, однако, сделать это:

exec 2>/dev/null

Я бы не рекомендовал делать это вне сценария.

Крис Даун
источник