เมื่อวานนี้ผมอ่านนี้เพื่อแสดงความคิดเห็นที่บอกว่าในเปลือก (อย่างน้อยbash) "มีผลเช่นเดียวกับ">&->/dev/null
ความคิดเห็นนั้นหมายถึงคู่มือ ABSเป็นแหล่งข้อมูล แต่แหล่งที่มาบอกว่า>&-ไวยากรณ์ "ปิด file descriptors"
ไม่ชัดเจนสำหรับฉันว่าการกระทำสองอย่างของการปิดไฟล์ descriptor และการเปลี่ยนเส้นทางไปยังอุปกรณ์ null นั้นมีความเทียบเท่าโดยสิ้นเชิง ดังนั้นคำถามของฉันคือพวกเขา?
บนพื้นผิวของมันดูเหมือนว่าการปิด descriptor เป็นเหมือนการปิดประตู แต่การเปลี่ยนเส้นทางไปยังอุปกรณ์ null กำลังเปิดประตูสู่บริเวณขอบรก! ทั้งสองดูเหมือนจะไม่เหมือนกันกับฉันเพราะถ้าฉันเห็นประตูที่ปิดฉันจะไม่พยายามโยนอะไรออกไปจากมัน แต่ถ้าฉันเห็นประตูเปิดฉันจะถือว่าฉันทำได้
ในคำอื่น ๆ ฉันสงสัยเสมอว่า>/dev/nullหมายความว่าcat mybigfile >/dev/nullจริง ๆ แล้วจะประมวลผลทุกไบต์ของไฟล์และเขียนมันเพื่อ/dev/nullที่จะลืมมัน ในทางกลับกันถ้าเชลล์พบ file descriptor ที่ปิดฉันมักจะคิดว่า (แต่ไม่แน่ใจ) ว่ามันจะไม่เขียนอะไรเลยแม้ว่าคำถามcatนั้นจะยังคงอ่านทุกไบต์
ความคิดเห็นนี้พูด>&-และ>/dev/null" ควร " เหมือนกัน แต่มันไม่ได้ดังก้องคำตอบสำหรับฉัน ฉันต้องการคำตอบที่เชื่อถือได้มากขึ้นโดยอ้างอิงถึงแกนมาตรฐานหรือแหล่งข้อมูลบางส่วนหรือไม่ ...