2010-12-22 34 views

Trả lời

16

Đó là những gì tee dành cho:

command | tee file1 file2 file3 > file4 

tee cũng kết quả đầu ra để stdout, vì vậy bạn có thể muốn hoặc để đặt một tập tin sau khi chuyển hướng (như hình trên), hoặc gửi stdout để /dev/null.

Đối với trường hợp của bạn:

echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log >/dev/null 
0

số gì về việc sử dụng tee hai lần?

echo "Your text" | tee file1 | tee file2 > file3 
+0

Cảm ơn. Tôi bỏ qua để xác định rằng tôi muốn sử dụng tham chiếu tệp ký tự đại diện. – Synesso

+0

Sau đó xem câu trả lời của Laurence. – Robert

+1

Bạn có thể chỉ định nhiều đối số cho 'tee'. Bạn không cần phải chạy nó hai lần. –

0

ống đến "tee" lệnh để chi nhánh vào một tập tin và std ra, thác các tee lệnh

+0

Cảm ơn. Tôi bỏ qua để xác định rằng tôi muốn sử dụng tham chiếu tệp ký tự đại diện. – Synesso

+1

Bạn có thể chỉ định nhiều đối số cho 'tee' thay vì xếp thứ tự chúng. –

5

Bạn có thể làm điều này bằng tee, mà đọc từ stdin và viết để stdout và các tập tin. Kể từ khi tee cũng kết quả đầu ra để stdout, tôi đã chọn để trực tiếp đầu ra của nó để /dev/null. Lưu ý rằng bash mở rộng phù hợp với các tập tin hiện có, do đó, các tập tin bạn đang cố gắng ghi vào phải tồn tại trước khi thực hiện lệnh này để nó hoạt động.

$ echo "" | tee /home/jem/rep_0[1-3]/logs/SystemOut.log > /dev/null 

Là một mặt lưu ý, các "" bạn vượt qua để echo là không cần thiết.

Không liên quan trực tiếp đến câu hỏi của bạn, nhưng nếu bạn không dựa vào mở rộng bash, bạn có thể có nhiều đường ống.

$ echo hello > foo > bar > baz 
$ cat foo bar baz 
hello 
hello 
hello 
1

Bạn có thể làm điều này:

echo "" | tee /home/jem/rep_0{1..3}/logs/SystemOut.log 

Để ngăn chặn đầu ra để stdout, thêm video này vào phần cuối của lệnh trên:

> /dev/null 

Lệnh echo trong câu hỏi của bạn (không yêu cầu dấu ngoặc đơn trống) chỉ cần đặt một dòng mới trong các tệp. Nếu bạn muốn tạo các tệp rỗng, hãy sử dụng lệnh touch.

+0

Không chỉ đặt, ghi đè nội dung bằng một dòng mới. –

1

Tôi đã có cùng một câu hỏi này và chỉ muốn thêm ví dụ bằng ký tự đại diện vì nó chưa được hiển thị. Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm:

echo "" | tee *.log 
+0

chính xác những gì tôi cần, hoàn hảo. – PoweredByRice

Các vấn đề liên quan