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?


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.