Tous les systèmes d'exploitation POSIX ont 3 flux :stdin, stdout et stderr. stdin est l'entrée, qui peut accepter stdout ou stderr. stdout est la sortie principale, qui est redirigée avec >
, >>
, ou |
. stderr est la sortie d'erreur, qui est gérée séparément afin que les exceptions ne soient pas transmises à une commande ou écrites dans un fichier susceptible de se casser ; normalement, cela est envoyé à un journal quelconque, ou vidé directement, même lorsque la sortie standard est redirigée. Pour rediriger les deux vers le même endroit, utilisez :
$command &> /some/file
MODIFIER : merci à Zack d'avoir signalé que la solution ci-dessus n'est pas portable. Utilisez plutôt :
$command > file 2>&1
Si vous voulez faire taire l'erreur, faites :
$command 2> /dev/null
Cette partie est écrite dans stderr, utilisez 2>
pour le rediriger. Par exemple :
foo > stdout.txt 2> stderr.txt
ou si vous voulez dans le même fichier :
foo > allout.txt 2>&1
Remarque :cela fonctionne en (ba)sh, vérifiez votre shell pour la syntaxe appropriée