Question Que signifie 2> / dev / null?


Je voudrais une brève explication de la ligne de commande suivante:

grep -i 'abc' content 2>/dev/null 

149
2017-09-26 08:21


origine




Réponses:


L'opérateur> redirige généralement la sortie vers un fichier, mais il peut s'agir d'un périphérique. Vous pouvez également utiliser >> pour ajouter.

Si vous ne spécifiez pas de nombre, le flux de sortie standard est supposé, mais vous pouvez également rediriger les erreurs.

> file redirige stdout vers le fichier
1> file redirige stdout vers le fichier
2> file redirige stderr vers le fichier
&> file redirige stdout et stderr vers le fichier

/dev/null est le périphérique null qui prend n'importe quelle entrée que vous voulez et le jette. Il peut être utilisé pour supprimer toute sortie.


217
2017-09-26 08:38



y a-t-il une différence entre > /dev/null 2>&1 et &> /dev/null - Alexander Mills
En pratique aujourd'hui, je ne pense pas qu'il y ait 2>&1 est une ancienne syntaxe donc &> n'aurait pas travaillé il y a des années mais les deux sont équivalents. - Warren Hill


En bref, il redirige stderr (fd 2) vers le trou noir (supprime la sortie de la commande).

Quelques cas d'utilisation plus courants pour la redirection:

command > /dev/null 2>&1 &

Courir command en arrière-plan, jeter stdout et stderr

command >> /path/to/log 2>&1 &

Courir command et ajoutez stdout et stderr à un fichier journal.


16
2017-09-26 08:32



Y a-t-il une bonne raison d'utiliser > /dev/null 2>&1 au lieu de &> /dev/null? - Craig McQueen
@CraigMcQueen &> est nouveau dans Bash 4, le premier est juste la manière traditionnelle, je suis juste tellement habitué (facile à retenir). - Terry Wang


/dev/null est traité comme un trou noir dans Linux / Unix, vous pouvez donc tout y mettre mais vous ne pourrez pas le récupérer /dev/null.

Plus loin, 2> signifie que vous redirigez (c'est-à-dire >) le stderr (c'est-à-dire 2) dans le trou noir (c.-à-d. /dev/null)

Votre commande est la suivante:

grep -i 'abc' content 2>/dev/null 

N'essayez pas de finir avec une autre barre oblique comme celle-ci - 2>/dev/null/ (ce n'est pas un répertoire).


5
2018-06-11 10:57