วิธีการต่อท้ายทีไฟล์ใน Bash?


73

เหล่านี้เป็นคำสั่งที่ฉันพิมพ์ใน terminal

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

เมื่อฉันดูไฟล์ output.log ฉันเห็น 'บรรทัดที่สอง' เท่านั้น ฉันจะแน่ใจได้อย่างไรว่าทีต่อท้าย (แทนที่จะลบไฟล์ออก)

ฉันต้องการที่จะเห็นสิ่งนี้ในไฟล์:

First Line
Second Line

ฉันควรจะเข้าใกล้อีกทางนี้หรือไม่?

ขอบคุณ!

คำตอบ:


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

จากผู้ชายที :

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

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

หมายเหตุ: การใช้-aยังคงสร้างไฟล์ที่กล่าวถึง


12
เพื่อประโยชน์ของผู้ค้นหาตัวปรับเปลี่ยน -a นั้นมีไว้สำหรับ 'ผนวก' หรือเพิ่มในส่วนท้าย หากไม่มี -a คำสั่ง tee จะเขียนทับไฟล์
chili555

1
ทียังสร้างไฟล์หรือไม่หากไม่มีอยู่ในตัวเลือก "-a" หรือไม่
Bryson S.

@ chili555: มันเป็นไปได้ที่จะต่อท้ายไฟล์หรือไม่และไม่เขียนทับไฟล์? ขอบคุณ
СашаЧерных

2
@ СашаЧерныхไม่มีที่ฉันรู้ ฟังดูเหมือนเป็นคำถามที่ยอดเยี่ยมสำหรับคำถามใหม่!
chili555

1
@ СашаЧерных 'cat source.file destination.file | tee destination.file 'จะผนวก source.file ที่จุดเริ่มต้นของ destination.file วิธีการจับเท่านั้นด้วยวิธีนี้คือทีจะพิมพ์เพื่อ stdout ไฟล์ทั้งสอง
Bruno9779
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.