¿Cómo agregar la salida a un archivo?

125

¿Cómo puedo hacer algo como command > fileque se anexe al archivo, en lugar de sobrescribirlo?

Tom Brito
fuente
1
(Hay montones y montones de - quizás demasiados - objetos valiosos en el manual de referencia de fiesta que incluye todo tipo de redirecciones Ajuste según sea necesario para la cáscara..)
44
También puede usar tee, si desea redirigir a STDOUT y agregar resultados a un archivo. Por ejemplo: echo "hola" | tee -a somefile.txt, donde la bandera -a significa agregar.
Henrik

Respuestas:

212

Use >>para agregar:

command >> file
Mike Lewis
fuente
103

Si.

command >> filepara redirigir solo stdout de command.

command >> file 2>&1para redirigir stdout y stderr al archivo (funciona en bash, zsh)

Y si necesita usar sudo, recuerde que solo

sudo command >> /file/requiring/sudo/privilegesno funciona, ya que la elevación de privilegios se aplica commandpero no a la parte de redirección de shell. Sin embargo, simplemente usando teeresuelve el problema:

command | sudo tee -a /file/requiring/sudo/privileges

EdvardM
fuente
66
Estoy usando esto para todos los programas de captura de salida. Sh 2> & 1 | tee -a screen.log. "-a" significa agregar.
Xdg
-3

Puede agregar el archivo con >> signo. Inserta el contenido al final del archivo que estamos utilizando, por ejemplo, si el archivo deja que su nombre sea myfile contiene xyz, entonces cat >> myfile abc ctrl d

Después del proceso anterior, el archivo myy contiene xyzabc.

usuario3680358
fuente
44
El >>operador ya fue mencionado tres años antes, y el OP sabe lo que significa agregar.
Dan Dascalescu