196 votes

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

Je sais ceci :

Est-il possible que je puisse la stderr vers le fichier d’erreur de sortie et sortie stdout vers le fichier de sortie dans la même ligne de bash ?

318voto

Sujoy Points 2544

Simplement les ajouter en une seule ligne, command 2>> error 1>> output

Notez, cependant, que >> est pour l'ajout si le fichier a déjà des données. Alors que, > va écraser les données existantes dans le fichier.

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

Juste pour l'achèvement de souci, vous pouvez écrire 1> comme juste > depuis le descripteur de fichier par défaut est la sortie. donc, 1> et > est la même chose.

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

32voto

Quintus.Zhou Points 50

Essayez ceci

You_command 2>stderr.log 1>stdout.log

Voici quelques conseils supplémentaires.

0, 1, 2...9 sont des descripteurs de fichiers en bash. 0 représente pour l'entrée standard, 1 signifie stdout, 2 supports pour stderror. 3~9 est libre pour toute autre usage temporaire.

Tout descripteur de fichier peuvent être redirigés vers d'autres descripteur de fichier ou de fichiers en utilisant l'opérateur > >ou > >(ajouter).

Utilisation: <file_descriptor> > <nom de fichier | &file_descriptor>

Veuillez vous reporter à http://www.tldp.org/LDP/abs/html/io-redirection.html

12voto

Didier Trosset Points 17949

Comme ça :

8voto

ztank1013 Points 1105

Ou si vous voulez mélanger les sorties (stdout et stderr) en un seul fichier vous pouvez utiliser :

-4voto

user2970582 Points 24
Command 1 >> output1.txt; Command 2 >> output2.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X