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.