Sempre redirecione o erro para / dev / null

22

Eu sei que posso redirecionar as mensagens de erro de um comando para /dev/nullusar a seguinte sintaxe:

command arg1 arg2 2>/dev/null

Mas existe uma maneira de fazer isso por padrão, para que as mensagens de erro sempre sejam enviadas /dev/null, a menos que eu especifique o contrário?

Richard
fonte
1
Resumindo: sim - redirecione / dev / stderr para / dev / null. Mas, se você não consegue descobrir por conta própria, não deve tentar, pois é mais provável que você quebre algo fatalmente do que tenha sucesso.
Benubird 13/05
@Benubird stderr! = / Dev / stderr. Redirecionar esse arquivo não fará nada. O arquivo em / dev / é apenas por conveniência.
Chris Baixo
@ ChrisDown você está certo, / dev / stderr é apenas um link. Ainda assim, muitos processos gravam isso em vez de fd / 2, que você também pode redirecionar. Fica mais complicado a partir daí - por isso deixei um comentário em vez de uma resposta :).
Benubird 14/05

Respostas:

29

Muitos programas enviam saída para o stderr que não é realmente indicativo de erros. Por exemplo, em alguns programas, é usado para exibir informações que, de outra forma, afetariam a saída do programa (que foi projetada para ser canalizada para outro programa). Você pode, no entanto, fazer o seguinte:

exec 2>/dev/null

Eu não recomendaria fazer isso fora de um script.

Chris Down
fonte