ฉันไม่มีความชัดเจนว่าการสั่งซื้อที่ดีที่สุดคือการจับภาพทั้งSTDERR
และไปยังแฟ้มเดียวกันโดยใช้STDOUT
tee
ฉันรู้ว่าถ้าฉันต้องการไปป์กับไฟล์ฉันต้องแมป filehandle หลังจากเปลี่ยนเส้นทางคือ
find . >/tmp/output.txt 2>&1
นี้จะสั่งให้เปลือกที่จะส่งSTDOUT
ไป/tmp/output.txt
แล้วจะส่งSTDERR
ไปSTDOUT
(ซึ่งขณะนี้ส่งไปยัง/tmp/output.txt
)
ความพยายามที่จะดำเนินการ2>&1
ก่อนที่จะเปลี่ยนเส้นทางไฟล์จะไม่มีผลที่ต้องการ
อย่างไรก็ตามเมื่อฉันต้องการใช้ pipe tee
ควรเป็น:
find . |tee /tmp/output.txt 2>&1 # or
find . 2>&1 |tee /tmp/output.txt # ?
|&
ใช้แล้วข้อผิดพลาดมาตรฐานของ command1 จะเชื่อมต่อกับอินพุตมาตรฐานของ command2 ผ่านทางไพพ์ซึ่งเป็นข้อมูลย่อสำหรับการ2>&1 |
เปลี่ยนทิศทางโดยปริยายของข้อผิดพลาดมาตรฐานจะดำเนินการหลังจากการเปลี่ยนทิศทางที่ระบุโดยคำสั่ง"