จะเขียนทับไฟล์ด้วย echo ได้อย่างไร?


8

เมื่อใช้งาน echo "foo">> bar.txt มากกว่าหนึ่งครั้งจะต่อท้ายไฟล์ วิธีการเขียนทับ bar.txt แต่ละครั้ง?


2
คำตอบของเดนนิสนั้นถูกต้อง ดู man bash และค้นหา (ใช้ / ) สำหรับส่วนที่ "REDIRECTION" ส่วนย่อยเฉพาะ "การเปลี่ยนเส้นทางผลผลิต" และ "ผนวกผลลัพธ์ที่เปลี่ยนเส้นทางต่อท้าย"
RedGrittyBrick

คำตอบ:


22

> ใช้สำหรับเปลี่ยนเส้นทางไปยังไฟล์ (เขียนทับมัน) ในขณะที่ >> สำหรับการต่อท้าย

เพื่อเขียนทับ bar.txtใช้สิ่งนี้:

echo "foo" > bar.txt

1
มากกว่าปกติ > เรียกว่า เปลี่ยนเส้นทาง (เอาต์พุตมาตรฐานไปยังไฟล์) ในขณะที่สัญลักษณ์ไพพ์ | เรียกว่า การเป่า (เอาต์พุตมาตรฐานไปยังกระบวนการอื่น) คุณเสี่ยงต่อการทำให้คนสับสนอย่างฉันเมื่อคุณพูดถึง > เป็น 'piping'
RedGrittyBrick

@ RedGrittyBrick: ฉันเคยเห็น การเป่า ในหนังสือไม่กี่เล่ม (และฉันพูดมาหลายปีแล้ว) แต่ เปลี่ยนเส้นทาง ดูเหมือนจะเป็นเรื่องธรรมดามาก ขอบคุณ
Dennis

@Dennis Piping กำลังใช้ไพพ์ | สำหรับเชื่อมต่อเอาต์พุตของหนึ่งโปรแกรม / คำสั่งเข้ากับอินพุตของอีกโปรแกรมหนึ่ง ที่เกี่ยวข้อง .
Daniel Beck


โปรดทราบว่าตามหน้า 43 ใน PowerShell > foo มันเป็นเพียงน้ำตาลเชิงซ้อนสำหรับ | Out-File fooและดังนั้นจึงเป็นรูปแบบของการวางท่อ ;-)
Daniel Beck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.