
ฮาร์ดลิงก์จะลิงก์ไฟล์และไดเร็กทอรีในระบบไฟล์เดียวกัน แต่ Soft link สามารถข้ามขอบเขตระบบไฟล์
ก่อนที่จะทำความเข้าใจกับลิงค์เราควรเข้าใจ inode ก่อน, inode เป็นโครงสร้างข้อมูลที่ประกอบด้วยข้อมูลเมตาเกี่ยวกับไฟล์เช่นวันที่สร้างไฟล์, การอนุญาตไฟล์, เจ้าของไฟล์และอื่น ๆ
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ฮาร์ดลิงก์ | ซอฟต์ลิงค์ |
---|---|---|
ขั้นพื้นฐาน | ไฟล์สามารถเข้าถึงได้ผ่านชื่อต่าง ๆ มากมายที่เรียกว่าฮาร์ดลิงก์ | ไฟล์สามารถเข้าถึงได้ผ่านการอ้างอิงที่แตกต่างกันซึ่งชี้ไปที่ไฟล์นั้นเป็นที่รู้จักกันในชื่อ soft link |
การตรวจสอบความถูกต้องของลิงค์เมื่อไฟล์ต้นฉบับถูกลบ | ยังคงใช้ได้และสามารถเข้าถึงไฟล์ได้ | โมฆะ |
คำสั่งที่ใช้สำหรับการสร้าง | LN | ln -s |
หมายเลข inode | เหมือนกัน | ต่าง |
สามารถเชื่อมโยง | ไปยังพาร์ทิชันของตัวเอง | ไปยังระบบไฟล์อื่น ๆ แม้ในเครือข่าย |
การใช้หน่วยความจำ | น้อยกว่า | มากกว่า |
เส้นทางสัมพัทธ์ | ไม่สามารถใช้ได้ | ได้รับอนุญาต |
ความหมายของฮาร์ดลิงก์
ฮาร์ดลิงก์ โดยตรงลิงก์สองไฟล์ในระบบไฟล์เดียวกันและเพื่อระบุว่าใช้หมายเลขไอโหนดของไฟล์ ฮาร์ดลิงก์ไม่สามารถนำไปใช้กับไดเรกทอรีได้ (เนื่องจากชี้ไปที่ไอโหนด) เมื่อคำสั่ง“ ln ” ถูกใช้เพื่อสร้างฮาร์ดลิงก์มันจะสร้างไฟล์อื่นบนบรรทัดคำสั่งซึ่งสามารถใช้เพื่ออ้างอิงไฟล์ต้นฉบับ ทั้งไฟล์ต้นฉบับและไฟล์ที่สร้างขึ้นมีไอโหนดและเนื้อหาเหมือนกัน ดังนั้นพวกเขาจะมีสิทธิ์เหมือนกันและเป็นเจ้าของเดียวกัน
การลบไฟล์ต้นฉบับจะไม่มีผลกับไฟล์ที่เชื่อมโยงอย่างหนักและไฟล์ที่เชื่อมโยงจะยังคงอยู่ inode มีตัวนับเพื่อคำนวณจำนวนฮาร์ดลิงก์ไปยังตัวมันเอง เมื่อตัวนับบ่งชี้ถึงค่า 0 จากนั้น inode จะถูกล้าง เมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงใด ๆ กับฮาร์ดลิงก์มันจะเลียนแบบในไฟล์ต้นฉบับ
นิยามของลิงค์ซอฟต์
ซอฟต์ลิงค์ มักจะเป็นพา ธ สำรอง (หรือนามแฝง) สำหรับไฟล์ต้นฉบับ สิ่งเหล่านี้เรียกว่า ลิงก์สัญลักษณ์ มันมีชื่อของ "ไฟล์เป้าหมาย" ของลิงก์ซึ่งระบุว่าเป็นลิงค์อ่อน เมื่อเข้าถึงไฟล์ซอฟต์ลิงค์จะเปลี่ยนเส้นทางไปยังไฟล์เป้าหมายผ่านพา ธ ที่เขียนในหัวเรื่องของซอฟต์ลิงค์
สิ่งเหล่านี้มีประโยชน์มากในกรณีของ windows OS ที่ซอฟต์ลิงค์ทำงานเป็นทางลัด การสร้างและการลบซอฟต์ลิงค์ไม่มีผลกับไฟล์ต้นฉบับ หากไฟล์เป้าหมายถูกลบซอฟต์ลิงค์ dangles ซึ่งหมายความว่ามันชี้ไปที่ใดและสร้างข้อความแสดงข้อผิดพลาดเมื่อเข้าถึงไฟล์เป้าหมาย ซอฟต์ลิงค์ไม่ใช้หมายเลขไอโหนดเหมือนฮาร์ดลิงค์ เส้นทางสัมบูรณ์หรือเส้นทางสัมพัทธ์อาจเป็นส่วนหนึ่งของลิงก์สัญลักษณ์
ความแตกต่างหลักระหว่างฮาร์ดลิงค์และซอฟท์ลิงค์
- ฮาร์ดลิงก์คือชื่อเพิ่มเติมของไฟล์ต้นฉบับซึ่งอ้างถึง inode เพื่อเข้าถึงไฟล์เป้าหมาย ในทางตรงกันข้ามซอฟต์ลิงค์จะแตกต่างจากไฟล์ต้นฉบับและเป็นชื่อแทนไฟล์ต้นฉบับ แต่ไม่ได้ใช้ไอโหนด
- เมื่อไฟล์ต้นฉบับถูกลบซอฟต์ลิงค์จะไม่ถูกต้องในขณะที่ฮาร์ดลิงก์นั้นจะใช้ได้แม้ว่าไฟล์เป้าหมายจะถูกลบ
- ใน Linux คำสั่งที่ใช้ในการสร้างฮาร์ดลิงก์คือ“ ln ” คำสั่งที่ใช้สำหรับซอฟต์ลิงก์คือ“ ln -s ”
- ฮาร์ดลิงก์มีหมายเลขไอโหนดเหมือนกันกับซอฟต์ลิงค์ซึ่งไฟล์เป้าหมายและซอฟต์ลิงค์มีหมายเลขไอโหนดที่แตกต่างกัน
- ฮาร์ดลิงก์ถูก จำกัด ไว้ที่พาร์ติชันของตัวเอง แต่ซอฟต์ลิงก์สามารถครอบคลุมระบบไฟล์ที่แตกต่างกัน
- ประสิทธิภาพของฮาร์ดลิงก์ดีกว่าซอฟต์ลิงค์ในบางกรณี
- อนุญาตให้ใช้พา ธ สัมพัทธ์และพา ธ สัมบูรณ์ได้ในซอฟต์ลิงก์ ในทางตรงกันข้ามเส้นทางสัมพัทธ์ไม่ได้รับอนุญาตในฮาร์ดลิงก์
ข้อสรุป
ฮาร์ดลิงก์ไม่ต้องการพื้นที่เพิ่มเติมและแก้ปัญหาได้เร็วกว่า แต่การเปลี่ยนแปลงที่นำไปใช้กับฮาร์ดลิงก์จะสะท้อนให้เห็นในไฟล์ต้นฉบับ ในทางตรงกันข้าม Soft link ต้องการพื้นที่เพิ่มเติม แต่การเปลี่ยนแปลงใด ๆ ใน soft link จะไม่ส่งผลกระทบต่อไฟล์ต้นฉบับ ซอฟท์ลิงค์อนุญาตให้ไดเรกทอรีต่างจากฮาร์ดลิงก์