Tôi không rõ thứ tự tốt nhất là chụp cả hai STDERR
và STDOUT
vào cùng một tệp bằng cách sử dụng tee
. Tôi biết rằng nếu tôi muốn chuyển sang tập tin, tôi phải ánh xạ tập tin sau khi chuyển hướng, tức là
find . >/tmp/output.txt 2>&1
Điều này hướng dẫn shell gửi STDOUT
đến /tmp/output.txt
và sau đó gửi STDERR
đến STDOUT
(hiện đang gửi đến /tmp/output.txt
).
Cố gắng thực hiện 2>&1
trước khi chuyển hướng tệp sẽ không có hiệu quả mong muốn.
Tuy nhiên, khi tôi muốn sử dụng đường ống tee
thì nên:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&
được sử dụng, lỗi tiêu chuẩn của lệnh1 được kết nối với đầu vào tiêu chuẩn của lệnh2 thông qua đường ống; nó là tốc ký2>&1 |
. Việc chuyển hướng ngầm định này của lỗi tiêu chuẩn được thực hiện sau bất kỳ chuyển hướng nào được chỉ định bởi lệnh."