Làm thế nào để nối tee vào một tập tin trong Bash?


74

Đây là những lệnh tôi gõ trong terminal

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

Khi tôi tìm trong tệp output.log tôi chỉ thấy 'Dòng thứ hai'. Làm thế nào tôi có thể chắc chắn rằng tee bổ sung (thay vì xóa sạch tệp)?

Tôi muốn có thể thấy điều này trong tập tin:

First Line
Second Line

Tôi có nên tiếp cận theo cách này?

Cảm ơn!

Câu trả lời:


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

Từ người đàn ông tee :

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

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

Lưu ý: Sử dụng -avẫn tạo tập tin được đề cập.


12
Vì lợi ích của người tìm kiếm, công cụ sửa đổi -a dành cho 'nối thêm' hoặc thêm vào cuối. Không có -a, lệnh tee ghi đè lên tệp.
chili555

1
Liệu tee vẫn tạo tập tin nếu nó không tồn tại khi bao gồm tùy chọn "-a"?
Bryson S.

@ chili555: có thể nối thêm vào đầu tệp chứ không phải đến cuối và không ghi đè lên tệp? Cảm ơn.
Саша Черных

2
@ СашаЧерных Không ai mà tôi biết. Nghe có vẻ như một chủ đề tuyệt vời cho một câu hỏi mới!
ớt555

1
@ Саша Черных 'cat source.file Destination.file | tee Destination.file 'sẽ nối thêm source.file vào đầu Destination.file. Cách bắt duy nhất với phương pháp này là tee sẽ in ra thiết bị xuất chuẩn cả hai tập tin.
Bruno9779
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.