zsh: ปิดใช้งานคำเตือน "ไฟล์ที่มีอยู่:" พร้อมการเปลี่ยนเส้นทาง


26

ฉันจะเขียนทับfile exists:คำเตือนจาก zsh ได้อย่างไร

> echo > newfile.txt
> echo > newfile.txt  
zsh: file exists: newfile.txt  

ในกรณีเหล่านี้ฉันต้องการให้เชลล์ไม่บ่นและเขียนทับไฟล์เช่นทุบตี

ในทำนองเดียวกันวิธีการแทนที่ต่อไปนี้:

$ ls >> /tmp/testfile.txt                                                                                                                                                   
zsh: no such file or directory: /tmp/testfile.txt

2
set +Cควรมีความยาวมากกว่าสำหรับความคิดเห็น แต่อาจเป็นเพราะฉันไม่ได้พูดถึง>|กรณีแบบใช้ครั้งเดียว
mikeserv

คำตอบ:



42

คุณสามารถบังคับให้ ZSH ปิดบังการเปลี่ยนเส้นทางด้วย:

>!

เหมือนกับ> ยกเว้นว่าไฟล์จะถูกตัดให้มีความยาวเป็นศูนย์ถ้ามีอยู่แม้ว่า CLOBBER จะไม่ได้รับการตั้งค่า

หรือ

>>!

เหมือน >> ยกเว้นว่าไฟล์จะถูกสร้างขึ้นหากไม่มีอยู่แม้ว่า CLOBBER จะไม่ได้รับการตั้งค่า


19

คนอื่น ๆ แนะนำให้ใช้>!หรือ>>!สิ่งเหล่านี้ไม่ได้มาตรฐาน POSIX วิธีที่เป็นไปตาม POSIx ในการเขียนทับไฟล์โดยไม่ต้องแจ้งให้ใช้>|หรือ>>|สิ่งนี้จะใช้ได้ในทุกเชลล์

สำหรับข้อมูลดูที่นี่: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_02

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.