<Précédent | Table des matières | Suivant>
Redirection de la sortie standard et de l'erreur standard vers un fichier
Il y a des cas dans lesquels nous pouvons souhaiter capturer toute la sortie d'une commande dans un seul fichier. Pour ce faire, nous devons rediriger à la fois la sortie standard et l'erreur standard. Il y a deux façons de faire ça. Tout d'abord, la méthode traditionnelle, qui fonctionne avec les anciennes versions du shell :
[moi@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1
[moi@linuxbox ~]$ ls -l /bin/usr > ls-output.txt 2>&1
En utilisant cette méthode, nous effectuons deux redirections. Tout d'abord, nous redirigeons la sortie standard vers le fichier ls-sortie.txt puis nous redirigeons le descripteur de fichier 2 (erreur standard) vers le descripteur de fichier un (sortie standard) en utilisant la notation 2> et 1.
Notez que l'ordre des redirections est important. La redirection de l'erreur standard doit toujours se produire après rediriger la sortie standard ou cela ne fonctionne pas. Dans l'exemple ci-dessus,
>ls-output.txt 2>&1
redirige l'erreur standard vers le fichier ls-sortie.txt, mais si l'ordre est modifié en
2>&1>ls-output.txt
l'erreur standard est dirigée vers l'écran.
Les versions récentes de bash fournir une deuxième méthode plus rationalisée pour effectuer cette
Erreur standard de redirection
redirection combinée :
[moi@linuxbox ~]$ ls -l /bin/usr &> ls-output.txt
[moi@linuxbox ~]$ ls -l /bin/usr &> ls-output.txt
Dans cet exemple, nous utilisons la notation unique &> pour rediriger à la fois la sortie standard et l'erreur standard vers le fichier ls-sortie.txt. Vous pouvez également ajouter la sortie standard et les flux d'erreurs standard à un seul fichier comme suit :
[moi@linuxbox ~]$ ls -l /bin/usr &>> ls-output.txt
[moi@linuxbox ~]$ ls -l /bin/usr &>> ls-output.txt