Zawsze przekierowuj błąd do / dev / null

22

Wiem, że mogę przekierować komunikaty o błędach z polecenia /dev/nullna następującą składnię:

command arg1 arg2 2>/dev/null

Ale czy istnieje sposób, aby to zrobić domyślnie, aby komunikaty o błędach zawsze trafiały /dev/null, chyba że zaznaczę inaczej?

Richard
źródło
1
W skrócie: tak - przekieruj / dev / stderr do / dev / null. Ale jeśli nie potrafisz tego zrozumieć na własną rękę, nie powinieneś próbować, ponieważ bardziej prawdopodobne jest, że złamiesz coś śmiertelnie niż odniesiesz sukces.
Benubird
@Benubird stderr! = / Dev / stderr. Przekierowanie tego pliku nic nie da. Plik w / dev / jest tylko dla wygody.
Chris Down
@ChrisDown masz rację, / dev / stderr to tylko link. Mimo to wiele procesów pisze do tego zamiast fd / 2, które można również przekierować. Staje się coraz bardziej skomplikowane - dlatego zostawiłem komentarz zamiast odpowiedzi :).
Benubird

Odpowiedzi:

29

Wiele programów wysyła dane wyjściowe do stderr, które w rzeczywistości nie wskazują na błędy. Na przykład w niektórych programach służy do wyświetlania informacji, które w przeciwnym razie wpłynęłyby na wyjście programu (który jest zaprojektowany do potokowania do innego programu). Możesz to jednak zrobić:

exec 2>/dev/null

Nie polecałbym robić tego poza skryptem.

Chris Down
źródło