• # Re: Du bon ordre des redirections

    Posté par . En réponse au message [Terminal] Du bon ordre des redirections. Évalué à 1.

    On aura bien sûr lu :

    Si vous voulez mettre stdout et stderr vers /dev/null :
    macommande > /dev/null 2>&1

    Dans l'autre sens,
    macommande 2>&1 >/dev/null
    explications plus claires : on redirige le flux d'erreur vers la sortie standard tandis que le flux de sortie "normal" du programme est envoyé vers /dev/null (on "croise" les flux). Eh oui l'ordre des redirections est important.

    stdout ---. .--- console
    X
    stderr ---' `-----------> /dev/null

    (waouh, de l'ascii-art -- si ça se trouve, il passe mal chez vous, désolé)

    Enfin, stdin (puisqu'on en parle) est désigné par <. On ne peut évidemment pas adresser ce flux : qui enverrait sa sortie sur sa propre entrée ? (quoique quelque part ca pourrait ressembler à de la récurrence... ;-) Non, si c'était possible, je ne vous raconte pas le bazar...

    Les développeurs C noteront la similitude entre &var et &flux... d'où la désignation de "pointeur".

    Je ne considère pas ça comme une astuce : les flux sont une base dans l'utilisation d'Unix quand même. Lire, écrire dans un fichier, rediriger à travers un pipe, etc. font partie de l'essentiel du fonctionnement d'Unix, donc de Linux...