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!

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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.