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