Toujours rediriger l'erreur vers / dev / null

22

Je sais que je peux rediriger les messages d'erreur d'une commande vers /dev/nullla syntaxe suivante:

command arg1 arg2 2>/dev/null

Mais existe-t-il un moyen de le faire par défaut afin que les messages d'erreur /dev/nullsoient toujours affichés , sauf indication contraire?

Richard
la source
1
En bref: oui - redirige / dev / stderr vers / dev / null. Mais, si vous ne pouvez pas le découvrir par vous-même, vous ne devriez pas essayer, car vous êtes plus susceptible de casser quelque chose fatalement que de réussir.
Benubird
@Benubird stderr! = / Dev / stderr. Rediriger ce fichier ne fera rien. Le fichier dans / dev / est juste pour plus de commodité.
Chris Down
@ChrisDown vous avez raison, / dev / stderr n'est qu'un lien. Pourtant, de nombreux processus y écrivent au lieu de fd / 2, que vous pouvez également rediriger. Cela devient plus compliqué à partir de là - c'est pourquoi j'ai laissé un commentaire au lieu d'une réponse :).
Benubird

Réponses:

29

De nombreux programmes envoient une sortie à stderr qui n'est pas réellement révélatrice d'erreurs. Par exemple, dans certains programmes, il est utilisé pour afficher des informations qui autrement affecteraient la sortie du programme (qui est conçu pour être canalisé dans un autre programme). Vous pouvez cependant faire ceci:

exec 2>/dev/null

Je ne recommanderais pas de faire cela en dehors d'un script.

Chris Down
la source