มีวิธีที่จะบอกcp
ไป--link
(เช่นสร้างการเชื่อมโยงยาก) แต่ถอยกลับในกรณีที่ฉันกำลังพยายาม hardlinks ระหว่างอุปกรณ์? ลิงก์ระหว่างอุปกรณ์เป็นไปไม่ได้และอาจทำให้เกิดความcp
ล้มเหลว
เหตุผลที่ฉันถามคือเพราะฉันต้องการใช้สิ่งนี้ในGNUmakefile
และต้องการบรรทัดคำสั่งที่อ่านได้มากกว่าหนึ่งที่ซับซ้อนและยาว (หรือฟังก์ชั่นสำหรับเรื่องนั้น)
คำถามสำหรับ GNU coreutils (7.4 และ 8.13)
หมายเหตุ: ตอนนี้การแก้ปัญหาจะเป็นเช่น (GNU ทำไวยากรณ์สูตร):
cp -fl $^ $@ || cp -f $^ $@
หลักสูตรนี้จะให้ข้อความแสดงข้อผิดพลาดปลอมในกรณีที่ลิงก์ระหว่างอุปกรณ์แม้ว่าจะประสบความสำเร็จในการcp
โทรครั้งที่สองแล้ว นอกจากนี้สิ่งนี้จะได้รับการขยาย (รูปแบบต้นฉบับดูเหมือนว่าจะอ่านได้ทั้งหมด) จะไม่สามารถอ่านได้อีก
$$
ในกรณีของฉันแน่นอนเพราะนี่คือภายในแมโคร และแน่นอนว่าสายของคุณเป็นรูปแบบของสิ่งที่ฉันใช้ แต่อย่างน้อยฉันก็รู้วิธีนี้ว่ามันไม่ได้มีอยู่ในตัวเลือกและฉันต้องให้ตัวเอง