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?

user128785
la source
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).
user128785
la source