GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rediriger stderr et stdout vers différents fichiers dans la même ligne de script ?

Comme ça :

$ command >>output 2>>error

Ajoutez-les simplement sur une seule ligne command 2>> error 1>> output

Cependant, notez que >> est à ajouter si le fichier contient déjà des données. Alors que, > écrasera toutes les données existantes dans le fichier.

Donc, command 2> error 1> output si vous ne souhaitez pas ajouter.

Juste pour compléter, vous pouvez écrire 1> comme juste > puisque le descripteur de fichier par défaut est la sortie. donc 1> et > c'est la même chose.

Alors, command 2> error 1> output devient, command 2> error > output


Essayez ceci :

your_command 2>stderr.log 1>stdout.log

Plus d'informations

Les chiffres 0 via 9 sont des descripteurs de fichiers dans bash.0 signifie entrée standard, 1 représente la sortie standard, 2 représente l'erreur standard. 3 à 9 sont disponibles pour tout autre usage temporaire.

Tout descripteur de fichier peut être redirigé vers un fichier ou vers un autre descripteur de fichier à l'aide de l'opérateur > . Vous pouvez à la place utiliser l'opérateur >> pour ajouter à un fichier au lieu d'en créer un vide.

Utilisation :

file_descriptor > filename

file_descriptor > &file_descriptor

Veuillez vous référer au Guide de script bash avancé :Chapitre 20. Redirection d'E/S.


Ou si vous aimez mélanger les sorties (stdout &stderr) dans un seul fichier, vous pouvez utiliser :

command > merged-output.txt 2>&1

Linux
  1. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  2. Comment capturer les sessions de terminal et la sortie avec la commande de script Linux

  3. Sortie vers Stdout et en même temps Grep dans un fichier ?

  4. Manière de rediriger la sortie d'un programme et de l'avoir toujours sur Stdout ?

  5. Comment rediriger Stderr et Stdout vers différents fichiers et également les afficher dans le terminal ?

Comment rediriger stderr vers stdout dans Bash

Configurer le shell pour imprimer Stderr et Stdout dans différentes couleurs ?

Rediriger et canaliser la sortie ?

Comment imprimer une sortie multiligne sur la même ligne ?

Rediriger toutes les sorties vers un fichier dans Bash

Comment rediriger la sortie de la commande time vers un fichier sous Linux ?