ผลลัพธ์ก่อนหน้าของการเปลี่ยนเส้นทางลินุกซ์


0

มีวิธีการเปลี่ยนเส้นทางการส่งออกบน Linux ไปยังอาร์กิวเมนต์เดิมหรือไม่ ตัวอย่างเช่น,

sort file.txt > file.txt

จะมีวิธีหลีกเลี่ยงการพิมพ์ file.txt อีกครั้งหรือไม่


คำสั่งที่คุณแสดงจะไม่ทำงาน file.txtมันก็จะตัด โปรดทราบว่าเชลล์จัดการกับการเปลี่ยนเส้นทางดังนั้นfile.txtจะเปิดขึ้นสำหรับการเขียน (และตัด) ก่อนที่จะsortถูกเรียก
Jonathon Reinhart

เป็นหลักซ้ำกัน (ซึ่งควรจะอยู่ใน superuser อยู่แล้ว): stackoverflow.com/questions/146435
Jonathon Reinhart

ฉันชอบที่นี่ตัดไฟล์แม้ว่า ดูเหมือนจะเป็นวิธีที่รวดเร็วกว่าในการดัมพ์เนื้อหาไฟล์มากกว่าcat /dev/null > file.txtหรืออย่างน้อยทางเลือกอื่น
jkeuhlen

คำตอบ:


1

สำหรับบางคำสั่งอาจมีตัวเลือกบางประเภทที่จะหลีกเลี่ยงความซ้ำซ้อนเช่นนี้ แต่ไม่ใช่กรณีทั่วไปสำหรับคำสั่งทั้งหมดใน Linux
ในกรณีของคุณวิธีที่ถูกต้องในการเขียนสิ่งที่คุณมีอยู่แล้ว

sort file.txt -o file.txt

นี่จะเรียงลำดับfile.txtและเขียนผลลัพธ์กลับไปที่ไฟล์เดียวกัน

หากคุณต้องการบันทึกอาร์กิวเมนต์เพื่อให้คุณไม่ต้องพิมพ์ชื่อไฟล์ยาวคุณสามารถเก็บไว้ในตัวแปร bash:

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