Bagaimana cara menambahkan tee ke file di Bash?

74

Ini adalah perintah yang saya ketik di terminal

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

Ketika saya melihat di file output.log saya hanya melihat 'Second Line'. Bagaimana saya bisa memastikan bahwa tee ditambahkan (daripada menghapus file)?

Saya ingin dapat melihat ini di file:

First Line
Second Line

Haruskah saya mendekati ini dengan cara lain?

Terima kasih!

Bluebeep
sumber

Jawaban:

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

Dari man tee :

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

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

Catatan: Menggunakan -amasih membuat file yang disebutkan.

pengguna4556274
sumber
12
Untuk kepentingan para pencari, pengubah -a adalah untuk 'tambahkan', atau tambahkan ke akhir. Tanpa -a, perintah tee menimpa file.
chili555
1
Apakah tee masih membuat file jika tidak ada ketika opsi "-a" dimasukkan?
Bryson S.
@ chili555: apakah mungkin menambahkan ke awal file, bukan ke akhir, dan tidak menimpa file? Terima kasih.
Саша Черных
2
@ СашаЧерных Tidak ada yang saya sadari. Itu terdengar seperti subjek yang bagus untuk pertanyaan baru!
chili555
1
@ Саша Черных 'cat source.file destination.file | tee destination.file 'akan menambahkan source.file di awal destination.file. Satu-satunya cara dengan pendekatan ini adalah tee akan mencetak untuk stdout kedua file.
Bruno9779