มันเหมาะกับฉันผลลัพธ์ของstrace ln -f -s /var/www/html/releases/build1390 app-current
อะไร
โอ้เนื่องจากเป็นไดเรกทอรีที่คุณต้องเพิ่มโดย-n
ไม่มีการอ้างอิงและสิ่งนี้ควรแก้ปัญหา -f
มีความสะดวกสบายมากขึ้นเนื่องจากการเพิ่ม -f ทำให้ยกเลิกการเชื่อมโยงอย่างไรก็ตาม แม้ว่าฉันเดาว่ามันอาจจะเกิดขึ้นเร็วขึ้นสักสองสามร้อย ms บนระบบที่โหลดตามปกติ
ตัวอย่างเช่นถ้า arf ชี้ไปที่ / home แล้ว:
strace ด้วย-n
:
strace ln -n -f -s / arf
...
symlink("/", "arf") = -1 EEXIST (File exists)
unlink("arf") = 0
symlink("/", "arf") = 0
strace โดย-n
:
strace ln -f -s / arf
...
write(2, "ln: "..., 4ln: ) = 4
write(2, "`arf/': cannot overwrite director"..., 34`arf/': cannot overwrite directory) = 34
write(2, "\n"..., 1) = 1
ดังนั้นโดยไม่ต้อง-n
ARF ได้รับ dereferenced ถือว่า LN จึงเป็น ARF /
ราวกับว่ามันเป็นจริง ในตัวอย่างเฉพาะของคุณหากไม่มีข้อผิดพลาดฉันคิดว่าคุณอาจสร้างลิงก์สัญลักษณ์ใหม่ภายใน/var/www/html/releases/build1390 app-current
และต้องการล้างข้อมูลนั้น