การเปลี่ยนเส้นทางกับ> | ทำ?


16

เมื่อใดที่คุณควรใช้>|เพื่อเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์แทนที่จะเป็นเพียง>?

คำอธิบายที่ให้ไว้เมื่อฉันแสดงนี้คือมันรับประกันว่าไฟล์เป้าหมายจะถูกตัดทอนก่อน แต่ฉันคิดว่า>โดยนัยแล้ว

เป็น>|ประโยชน์หรือไม่

คำตอบ:


16

มันเป็นnoclobberตัวเลือกบายพาสอย่างชัดเจน

ด้วยวิธีนี้คุณสามารถเขียนทับไฟล์แม้จะมีการnoclobberตั้งค่าไว้

ดูhttp://mywiki.wooledge.org/NoClobber

จากman bash:

หากโอเปอเรเตอร์การเปลี่ยนเส้นทางคือ> และเปิดใช้งานตัวเลือก noclobber ของ set builtin แล้วการเปลี่ยนเส้นทางจะล้มเหลวหากไฟล์ที่มีชื่อเป็นผลมาจากการขยายคำมีอยู่และเป็นไฟล์ปกติ หากโอเปอเรเตอร์การเปลี่ยนเส้นทางคือ> | หรือโอเปอเรเตอร์การเปลี่ยนเส้นทางคือ> และตัวเลือก noclobber ไปยังคำสั่ง set builtin ไม่ได้เปิดใช้งานการเปลี่ยนเส้นทางจะพยายามแม้จะมีชื่อไฟล์ด้วยคำอยู่ก็ตาม


8

จากman bash:

         -C      If set, bash does not overwrite an  existing  file  with
                  the  >,  >&,  and <> redirection operators.  This may be
                  overridden when creating output files by using the redi
                  rection operator >| instead of >.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.