Hay dos formas de hacer esto, dependiendo de su versión de Bash.
La forma clásica y portátil ( Bash pre-4 ) es:
cmd >> outfile 2>&1
Una forma no portátil, comenzando con Bash 4 es
cmd &>> outfile
(análogo a &> outfile
)
Para un buen estilo de codificación, debes
- decida si la portabilidad es una preocupación (luego use la forma clásica)
- decida si la portabilidad incluso para Bash pre-4 es una preocupación (luego use la forma clásica)
- no importa qué sintaxis use, no la cambie dentro del mismo script (¡confusión!)
Si su script ya comienza con #!/bin/sh
(sin importar si fue intencionado o no), entonces la solución Bash 4, y en general cualquier código específico de Bash, no es el camino a seguir.
También recuerde que Bash 4 &>>
es una sintaxis más corta: no introduce ninguna funcionalidad nueva ni nada por el estilo.
La sintaxis es (además de otra sintaxis de redirección) descrita aquí: http://bash-hackers.org/wiki/doku.php/syntax/redirection#appending_redirected_output_and_error_output