Ajouter à la fois stdout et stderr à un fichier


1

> redirige stdout vers un fichier et écrase le fichier.

&> redirige à la fois stdout et stderr et écrase (?) le fichier.

Je voudrais ajouter stdout et stderr dans un fichier, pas écraser. j'ai essayé &>> mais ça ne marche pas. Est-ce que &> déjà faire ce que je veux? Si non, une autre astuce?



2
Désolé, recherché uniquement sur superutilisateur. Et merci. J'étais au courant de cmd >file.txt 2>&1 mais ça ne m'a pas frappé d'essayer cmd >>file.txt 2>&1.
user128785

2
@ user128785 Vous pouvez poster une réponse à votre propre question
barlop

&>> devrait fonctionner, il est en version bash depuis la version 4.
Paulo

Je pensais que la question serait supprimée. Répondre maintenant avec les informations que vous avez données.
user128785

Réponses:


1

Il y a (au moins) deux moyens d'y parvenir:

  1. Soit utiliser cette construction: cmd >>file.txt 2>&1>> file ajoute la sortie au fichier et 2>&1 redirige le stderr à stdout.
  2. Ou utiliser cmd &>>file en vous assurant que vous avez la version bash & 4 (en utilisant bash --version ) et #!/bin/bash en début de dossier ( #!/bin/sh ne fonctionnera pas).
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.