แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่างฮาร์ดลิงค์และซอฟท์ลิงค์

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

ฮาร์ดลิงก์จะลิงก์ไฟล์และไดเร็กทอรีในระบบไฟล์เดียวกัน แต่ Soft link สามารถข้ามขอบเขตระบบไฟล์

ก่อนที่จะทำความเข้าใจกับลิงค์เราควรเข้าใจ inode ก่อน, inode เป็นโครงสร้างข้อมูลที่ประกอบด้วยข้อมูลเมตาเกี่ยวกับไฟล์เช่นวันที่สร้างไฟล์, การอนุญาตไฟล์, เจ้าของไฟล์และอื่น ๆ

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบฮาร์ดลิงก์
ซอฟต์ลิงค์
ขั้นพื้นฐานไฟล์สามารถเข้าถึงได้ผ่านชื่อต่าง ๆ มากมายที่เรียกว่าฮาร์ดลิงก์ไฟล์สามารถเข้าถึงได้ผ่านการอ้างอิงที่แตกต่างกันซึ่งชี้ไปที่ไฟล์นั้นเป็นที่รู้จักกันในชื่อ soft link
การตรวจสอบความถูกต้องของลิงค์เมื่อไฟล์ต้นฉบับถูกลบยังคงใช้ได้และสามารถเข้าถึงไฟล์ได้
โมฆะ
คำสั่งที่ใช้สำหรับการสร้างLN
ln -s
หมายเลข inodeเหมือนกัน
ต่าง
สามารถเชื่อมโยงไปยังพาร์ทิชันของตัวเองไปยังระบบไฟล์อื่น ๆ แม้ในเครือข่าย
การใช้หน่วยความจำน้อยกว่ามากกว่า
เส้นทางสัมพัทธ์ไม่สามารถใช้ได้ได้รับอนุญาต

ความหมายของฮาร์ดลิงก์

ฮาร์ดลิงก์ โดยตรงลิงก์สองไฟล์ในระบบไฟล์เดียวกันและเพื่อระบุว่าใช้หมายเลขไอโหนดของไฟล์ ฮาร์ดลิงก์ไม่สามารถนำไปใช้กับไดเรกทอรีได้ (เนื่องจากชี้ไปที่ไอโหนด) เมื่อคำสั่ง“ ln ” ถูกใช้เพื่อสร้างฮาร์ดลิงก์มันจะสร้างไฟล์อื่นบนบรรทัดคำสั่งซึ่งสามารถใช้เพื่ออ้างอิงไฟล์ต้นฉบับ ทั้งไฟล์ต้นฉบับและไฟล์ที่สร้างขึ้นมีไอโหนดและเนื้อหาเหมือนกัน ดังนั้นพวกเขาจะมีสิทธิ์เหมือนกันและเป็นเจ้าของเดียวกัน

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

นิยามของลิงค์ซอฟต์

ซอฟต์ลิงค์ มักจะเป็นพา ธ สำรอง (หรือนามแฝง) สำหรับไฟล์ต้นฉบับ สิ่งเหล่านี้เรียกว่า ลิงก์สัญลักษณ์ มันมีชื่อของ "ไฟล์เป้าหมาย" ของลิงก์ซึ่งระบุว่าเป็นลิงค์อ่อน เมื่อเข้าถึงไฟล์ซอฟต์ลิงค์จะเปลี่ยนเส้นทางไปยังไฟล์เป้าหมายผ่านพา ธ ที่เขียนในหัวเรื่องของซอฟต์ลิงค์

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

ความแตกต่างหลักระหว่างฮาร์ดลิงค์และซอฟท์ลิงค์

  1. ฮาร์ดลิงก์คือชื่อเพิ่มเติมของไฟล์ต้นฉบับซึ่งอ้างถึง inode เพื่อเข้าถึงไฟล์เป้าหมาย ในทางตรงกันข้ามซอฟต์ลิงค์จะแตกต่างจากไฟล์ต้นฉบับและเป็นชื่อแทนไฟล์ต้นฉบับ แต่ไม่ได้ใช้ไอโหนด
  2. เมื่อไฟล์ต้นฉบับถูกลบซอฟต์ลิงค์จะไม่ถูกต้องในขณะที่ฮาร์ดลิงก์นั้นจะใช้ได้แม้ว่าไฟล์เป้าหมายจะถูกลบ
  3. ใน Linux คำสั่งที่ใช้ในการสร้างฮาร์ดลิงก์คือ“ ln ” คำสั่งที่ใช้สำหรับซอฟต์ลิงก์คือ“ ln -s
  4. ฮาร์ดลิงก์มีหมายเลขไอโหนดเหมือนกันกับซอฟต์ลิงค์ซึ่งไฟล์เป้าหมายและซอฟต์ลิงค์มีหมายเลขไอโหนดที่แตกต่างกัน
  5. ฮาร์ดลิงก์ถูก จำกัด ไว้ที่พาร์ติชันของตัวเอง แต่ซอฟต์ลิงก์สามารถครอบคลุมระบบไฟล์ที่แตกต่างกัน
  6. ประสิทธิภาพของฮาร์ดลิงก์ดีกว่าซอฟต์ลิงค์ในบางกรณี
  7. อนุญาตให้ใช้พา ธ สัมพัทธ์และพา ธ สัมบูรณ์ได้ในซอฟต์ลิงก์ ในทางตรงกันข้ามเส้นทางสัมพัทธ์ไม่ได้รับอนุญาตในฮาร์ดลิงก์

ข้อสรุป

ฮาร์ดลิงก์ไม่ต้องการพื้นที่เพิ่มเติมและแก้ปัญหาได้เร็วกว่า แต่การเปลี่ยนแปลงที่นำไปใช้กับฮาร์ดลิงก์จะสะท้อนให้เห็นในไฟล์ต้นฉบับ ในทางตรงกันข้าม Soft link ต้องการพื้นที่เพิ่มเติม แต่การเปลี่ยนแปลงใด ๆ ใน soft link จะไม่ส่งผลกระทบต่อไฟล์ต้นฉบับ ซอฟท์ลิงค์อนุญาตให้ไดเรกทอรีต่างจากฮาร์ดลิงก์

Top