ฉันสามารถใช้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 ที่นี่ไม่มี