¿Cómo agregar tee a un archivo en Bash?


74

Estos son comandos que escribo en la terminal

echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee ~/output.log

Cuando miro en el archivo output.log solo veo 'Segunda línea'. ¿Cómo puedo asegurarme de que la camiseta se agregue (en lugar de borrar el archivo)?

Me gustaría poder ver esto en el archivo:

First Line
Second Line

¿Debería abordar esto de otra manera?

¡Gracias!

Respuestas:


119
echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee -a ~/output.log
                            ^^

De man tee :

   Copy standard input to each FILE, and also to standard output.

   -a, --append
          append to the given FILEs, do not overwrite

Nota: El uso -asigue creando el archivo mencionado.


12
Para el beneficio de los buscadores, el modificador -a es para 'agregar' o agregar al final. Sin -a, el comando tee sobrescribe el archivo.
chili555

1
¿Tee sigue creando el archivo si no existe cuando se incluye la opción "-a"?
Bryson S.

@ chili555: ¿es posible agregar al principio del archivo, no al final, y no sobrescribe un archivo? Gracias.
Саша Черных

2
@ СашаЧерных Ninguno que yo sepa. ¡Eso suena como un gran tema para una nueva pregunta!
chili555

1
@ Саша Черных 'cat source.file destination.file | tee destination.file 'agregará source.file al comienzo de destination.file. El único inconveniente con este enfoque es que tee se imprimirá en stdout ambos archivos.
Bruno9779
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.