Que fait la sortie en / dev / null dans les scripts bash? [dupliquer]

94

Souvent, je rencontre des petits scripts bash qui utilisent ce type de syntaxe dans les instructions if:

some command > /dev/null 2>&1

Quel est le but de la sortie vers /dev/null comme ça, et que signifie le 2>&1 ?

Cela semble toujours fonctionner mais je voudrais savoir ce qu’il fait.

    
posée javanix 08.11.2010 - 15:20
la source

2 réponses

126

>/dev/null redirige la sortie standard de la commande vers le périphérique nul, qui est un périphérique spécial qui ignore les informations qui lui sont écrites

2 >&1 redirige le flux d'erreur standard vers le flux de sortie standard (stderr = 2, stdout = 1).

En pratique, cela empêche l'affichage de toute sortie de la commande (stdout et stderr). Il est utilisé lorsque vous ne vous souciez pas de la sortie de la commande.

    
réponse donnée João Pinto 08.11.2010 - 15:31
la source
52

STDIN est représenté par 0, STDOUT par 1 et STDERR par 2.

/ dev / null est le bit-bucket: l'endroit où vous videz tout ce dont vous n'avez pas besoin.

Ainsi, le STDOUT est redirigé vers le bit-bucket (la corbeille) et le STDERR est redirigé vers l'emplacement du STDOUT: le bit-bucket.

Vous pouvez aussi faire ceci:

>/dev/null 2>/dev/null
    
réponse donnée Sid 08.11.2010 - 15:59
la source

Lire d'autres questions sur les étiquettes