อะไรคือความแตกต่างระหว่างลิงค์อ่อน (สัญลักษณ์) และฮาร์ดลิงก์?


59

ฉันได้ยินมาว่าคุณสามารถสร้างซอฟต์ลิงค์ใน Vista ได้เช่นกัน ดังนั้นอะไรคือความแตกต่างระหว่างลิงค์ soft (symbolic) และ hard link บน UNIX / Linux / Vista?

มีข้อดีของการใช้อย่างใดอย่างหนึ่งมากกว่าที่อื่น ๆ ? หรือพวกเขาเพียงแค่ให้บริการสองวัตถุประสงค์ที่แตกต่างกันอย่างไร


ในแง่การปฏิบัติคำตอบก็คือคุณมักจะต้องการใช้ลิงก์สัญลักษณ์ ความเข้าใจของฉันคือว่าฮาร์ดลิงก์ส่วนใหญ่ใช้สำหรับการรักษาพื้นที่โดยเฉพาะอย่างยิ่งในสิ่งต่าง ๆ เช่นสแน็ปช็อตและการสำรองข้อมูลเพิ่มเติมซึ่งสแน็ปช็อตต่อเนื่องมีไฟล์เหมือนกันมากมายที่ไม่น่าจะมีการเปลี่ยนแปลงในอนาคต
Ryan Thompson

ควรย้ายข้อมูลนี้ไปยัง Unix & Linux หรือไม่ ดูunix.stackexchange.com/questions/9575/…
ripper234

2
ไม่ไม่ควรย้ายข้อมูล เนื่องจากคำถามดั้งเดิมไม่เฉพาะเจาะจงกับ Unix เท่านั้น - Windows รองรับการเชื่อมโยงแบบแข็งและอ่อน
Richard West

1
บางโปรแกรมจะทำลาย (และบางครั้งไม่ดี) ถ้าคุณใช้การเชื่อมโยงนุ่ม - expecially ไดเรกทอรี: softlink จะได้รับการ dereferenced และเมื่อมันเป็นและการประยุกต์ใช้เปรียบเทียบพูด/var/opt/log/appname(config ของมัน) มีมูลค่า dereferenced พูด/apps/appname/logsก็จะบ่น นี่ไม่ใช่การแข่งขัน การแก้ไขสำหรับสิ่งนี้คือการใช้mount --bind(บน Linux) เพื่อติดตั้งไดเรกทอรีเดิมไปยังตำแหน่งใหม่
วอร์เรน

1
เพื่อล้างคะแนนสองสามข้อที่รวมอยู่ในคำตอบอื่น ๆ ... Windows สามารถสร้างลิงก์ได้ (แม้ว่าฉันเชื่อว่ามันทำงานแตกต่างจากใน Unix เล็กน้อย) ดูที่คำสั่ง mklink และอาร์กิวเมนต์ h (หากคุณพิมพ์ mklink ลงในบรรทัดคำสั่งคุณจะเห็นไฟล์ช่วยเหลือซึ่งรวมถึงไวยากรณ์พื้นฐาน)

คำตอบ:


68

ฮาร์ดลิงก์จะใช้โครงสร้างระบบไฟล์ร่วมกันแบบดั้งเดิม (inode in unixspeak) ในขณะที่ soft-link เป็นการเปลี่ยนเส้นทางพา ธ

  • ฮาร์ดลิงก์ต้องอยู่บนระบบไฟล์เดียวกันซอฟต์ลิงก์สามารถข้ามระบบไฟล์ได้
  • ไฟล์ Hardlinked จะยังคงเชื่อมโยงอยู่แม้ว่าคุณจะย้ายไฟล์ใดไฟล์หนึ่ง (ยกเว้นว่าคุณย้ายไฟล์หนึ่งไปยังระบบไฟล์อื่นที่ก่อให้เกิดกลไกการคัดลอกและลบ) ไฟล์ Softlinked แตกถ้าคุณย้ายเป้าหมาย (ดั้งเดิม) และบางครั้งเมื่อคุณย้ายลิงก์ (คุณใช้เส้นทางแบบสัมบูรณ์หรือเส้นทางสัมพัทธ์หรือไม่
  • ไฟล์ Hardlinked มีค่าเท่ากันในขณะที่ต้นฉบับมีความพิเศษในซอฟต์ลิงค์และการลบต้นฉบับจะเป็นการลบข้อมูล ข้อมูลจะไม่หายไปจนกว่าจะลบฮาร์ดลิงก์ทั้งหมด
  • Softlinks สามารถชี้ไปที่ใดเป้าหมาย แต่ส่วนใหญ่ OS / filesystems ไม่อนุญาต hardlinking ไดเรกทอรีเพื่อป้องกันไม่ให้วงจรในกราฟระบบแฟ้ม (ยกเว้นของ.และ..รายการในไดเรกทอรียูนิกซ์ซึ่งมีการเชื่อมโยงยาก)
  • ซอฟต์ลิงค์สามารถต้องการการสนับสนุนพิเศษจากเครื่องมือการเดินระบบไฟล์ อ่านข้อมูลเกี่ยวกับreadlink (2)

(รายละเอียดบางอย่างกลับมาสู่ความคิดโดยmat1tขอบคุณ)


สรุปที่ดี ผู้ใช้ลีนุกซ์ทุกคนควรรู้สิ่งนี้ (แม้ว่าฮาร์ดลิ้งค์จะผิดปกติมาก)
Artem Russakovskii

คำตอบของ dmckeeมีรายละเอียดเกี่ยวกับความหมายที่แน่นอนมาก รายละเอียดเดียวที่ฉันจะเพิ่มคือคำอธิบายของสิ่งที่เกิดขึ้นในระดับที่สูงกว่า: soft link เป็นไฟล์ของมันเองในขณะที่ hard link เป็นรายการไดเรกทอรีที่ชี้ไปยังข้อมูลที่มีอยู่ Wikipedia มีรายละเอียดเพิ่มเติมเกี่ยวกับลิงค์ที่แข็งและอ่อน
นายเงางามและใหม่安宇

ผลรวมที่ดีมีประโยชน์มาก
Razique

9
ควรสังเกตว่าฮาร์ดลิงก์แชร์สิทธิ์เช่นเดียวกับข้อมูลความเป็นเจ้าของ
Corey S.

6
โปรดเพิ่มว่ามีการสร้างลิงก์ 2 ชื่อโดยอัตโนมัติ และ .. แต่ละครั้งที่คุณสร้างโฟลเดอร์ ในลีนุกซ์นั้นเป็นเพียงฮาร์ดลิงก์ที่ถูกต้องไปยังโฟลเดอร์
Mircea Vutcovici

10

สรุปคือลิงก์สัญลักษณ์ / สั้นทำหน้าที่เป็นทางลัดไปยังตำแหน่งของไฟล์แรกในขณะที่ฮาร์ดลิงก์เป็นทางลัดไปยังไฟล์บนดิสก์

หากคุณลบเป้าหมายของซอฟต์ลิงค์ดังนั้นซอฟท์ลิงค์จะหยุดทำงาน แต่ถ้าคุณลบฮาร์ดลิงก์หนึ่งไฟล์ไฟล์นั้นจะยังคงอยู่บนดิสก์จนกว่าฮาร์ดลิงค์ทั้งหมดของมันจะถูกลบออก ผลชื่อไฟล์ทั้งหมดจะมีการเชื่อมโยงไปยังไฟล์บนดิสก์

นอกจากนี้ยังมีข้อ จำกัด บางอย่างเช่นฉันไม่คิดว่าคุณจะสามารถสร้างลิงก์ของโฟลเดอร์ได้ยาก แต่คุณสามารถสร้างลิงค์นุ่ม ๆ ซอฟต์ลิงค์สามารถชี้ไปที่ไฟล์ / โฟลเดอร์บนไดรฟ์และพาร์ติชั่นต่าง ๆ ในขณะที่ฮาร์ดลิงก์ไม่สามารถทำได้


-1

ระบบ MS Windows จะใช้ซอฟต์ลิงก์ (ทางลัด) เสมอ นั่นคือลิงก์จะทำหน้าที่เป็นทางลัดที่ชี้ไปยังตำแหน่งไฟล์ หากตำแหน่งของต้นฉบับถูกย้ายลิงค์จะแตก นอกจากนี้สิ่งที่คุณทำกับทางลัด (เช่นการเปลี่ยนการอนุญาตหรือการเปลี่ยนชื่อทางลัด) จะไม่มีผลกับไฟล์จริง

ดังนั้นคำถามเริ่มต้นด้วยสมมติฐานที่ไม่ถูกต้อง ใช่ Vista ใช้ซอฟต์ลิงค์ แต่ไม่ใช่เรื่องใหม่นั่นคือทางลัด MS


3
ไม่ NTFS รองรับการเชื่อมโยงและตั้งแต่ NTFS 3.1 (รุ่นปัจจุบันนับตั้งแต่ XP / 2003)
Chris S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.