ฉันสามารถใช้mv file1 file2ในลักษณะที่มันย้ายfile1ไปfile2หากfile2ไม่มีอยู่เท่านั้น?
ฉันได้ลองแล้ว
yes n | mv -i file1 file2
(สิ่งนี้ให้mvถามว่า file2 ควรถูกเขียนทับหรือไม่ตอบโดยอัตโนมัติ) แต่นอกเหนือจากการดูถูก-iมันก็ไม่ได้ให้รหัสข้อผิดพลาดที่ดีกับฉัน (เสมอ 141 แทนที่จะเป็น 0 ถ้าย้ายและอย่างอื่นถ้าไม่ย้าย)
-Tไว้สำหรับสิ่งนั้น
mvแทนที่จะyesเป็นทางออกที่ง่ายที่สุดอาจจะเป็นmv -i file1 file2 < <(yes n)
pipefailตัวเลือกในฐานะ 141 จะออกจากสถานะของyesไม่mvซึ่งจะมีเหตุผลที่จะได้รับ SIGPIPE ที่นี่ไม่มี