Завжди помилка перенаправлення на / 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

Я б не рекомендував робити це поза сценарієм.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.