ฉันพยายามค้นหาวิธีส่งข้อความไปยังไฟล์โดยไม่เขียนทับสิ่งที่มีอยู่แล้วโดยใช้>คำสั่งและฉันก็รู้ว่าไม่รู้ว่ามันเรียกอะไร ค้นหาลูกศรขวาหรือเครื่องหมายบั้งขวาหรือมากกว่าคำสั่งไม่แสดงอะไร ฉันเคยเรียกว่าเพียงแค่มันผ่านไป
ฉันพยายามค้นหาวิธีส่งข้อความไปยังไฟล์โดยไม่เขียนทับสิ่งที่มีอยู่แล้วโดยใช้>คำสั่งและฉันก็รู้ว่าไม่รู้ว่ามันเรียกอะไร ค้นหาลูกศรขวาหรือเครื่องหมายบั้งขวาหรือมากกว่าคำสั่งไม่แสดงอะไร ฉันเคยเรียกว่าเพียงแค่มันผ่านไป
คำตอบ:
>ไม่ใช่คำสั่ง แต่เป็นการเปลี่ยนเส้นทางไฟล์ descriptor ซึ่งหมายความว่าเชลล์แยกวิเคราะห์การมอบหมายนี้ลบออกจากบรรทัดคำสั่งและเปลี่ยนสภาพแวดล้อมสำหรับกระบวนการใหม่ที่เริ่มต้น กระบวนการใหม่ไม่ได้สังเกตเห็นส่วนนี้ของบรรทัดคำสั่ง นั่นคือเหตุผลที่คุณสามารถใส่ได้ทุกที่: ในตอนต้น, ตอนท้ายหรือระหว่าง
มองหากระชากREDIRECTIONman bash
>>เพื่อที่จะผนวกไปยังแฟ้มที่มีอยู่ที่คุณจำเป็นต้องใช้
>เป็นผู้ประกอบการเปลี่ยนเส้นทาง โปรดทราบว่าการใช้>เพื่อเปลี่ยนเส้นทางไปยังไฟล์ปกติจะเขียนทับสิ่งที่มีอยู่แล้วยกเว้นว่ามีการตั้งค่าnoclobber >>จะต่อท้ายไฟล์
noclobberได้รับการตั้งค่า (ทุบตี)
                    noclobberไม่ได้เป็นเพียงแค่ความน่าเบื่อหน่าย มันเป็นส่วนหนึ่งของ POSIX
                    อย่างที่คนอื่น ๆ ตอบแล้ว>ไม่ใช่คำสั่ง แต่เป็นตัวดำเนินการเปลี่ยนเส้นทาง อย่างไรก็ตามคำว่า 'โอเปอเรเตอร์การเปลี่ยนเส้นทาง' ไม่ได้อ้างถึงเฉพาะ>แต่มีโอเปอเรเตอร์การเปลี่ยนเส้นทางที่แตกต่างกันจำนวนหนึ่ง dashรายการหน้าคนดังต่อไปนี้เป็นผู้ประกอบการเปลี่ยนเส้นทาง:
 < > >| << >> <& >& <<- <>ฉันไม่แน่ใจว่ามีชื่อบุคคลที่ถูกต้องสำหรับแต่ละชื่อ บางทีถ้าคุณขุดคู่มือเชลล์เก่าบางเล่มคุณจะพบสิ่งที่น่าสนใจ แหล่งที่มานี้ถูกต้องหรือไม่ถูกต้องมีการตั้งชื่อบางอย่าง:
>  - 'output redirection operator'
<  - 'input redirection operator'
>> - 'output append operator'
แต่ยัง:
2> - 'standard error redirection operator'อย่างไรก็ตามฉันไม่คิดว่ามันถูกต้องจริงๆเพราะ2เป็นข้อโต้แย้งทางเทคนิคมากกว่าส่วนหนึ่งของโอเปอเรเตอร์
ข้อมูลอ้างอิงอย่างรวดเร็ว (ในกรณีที่คุณไม่รู้จักข้อใดข้อหนึ่งข้างต้น):
>   - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>|  - as above but overwrite the file even if the noclobber shell option is set
>>  - append output stream to file
<   - redirect input stream from file, n defaults to 0 for stdin
<>  - open file for reading and writing on stdin
>&  - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<<  - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.
ในตัวbashคุณยังมี:
<<< - here string, a one line here file. Eg <<<"foo bar"<<-ลบแท็บและช่องว่างนำหน้าใช่ไหม
                    >  เปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ (หรืออุปกรณ์) เขียนทับสิ่งที่มีอยู่แล้วที่นั่น
>> เปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ (หรืออุปกรณ์) ต่อท้ายสิ่งที่มีอยู่แล้วที่นั่น
<  นำข้อมูลจากไฟล์ (หรืออุปกรณ์) ไปยังโปรแกรมหรืออุปกรณ์
<< เอกสารที่นี่
<<เป็นเอกสารที่นี่
                    
noclobberมีการตั้งค่าตัวเลือกไว้>|จะมีการแทนที่และอนุญาตให้แก้ไขไฟล์ได้