ซอฟต์ (สัญลักษณ์) ลิงค์ vs ฮาร์ดลิงค์

Soft Link Vs Hard Link



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

ฮาร์ดลิงค์

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







ตรงกันข้ามกับซอฟต์ลิงก์ ฮาร์ดลิงก์มีข้อมูลที่พวกเขาลิงก์ไป ดังนั้นหากไฟล์ต้นฉบับถูกลบออกไป คุณยังสามารถเข้าถึงข้อมูลของไฟล์นั้นได้



ในทุกระบบ Linux ทั้งฮาร์ดลิงก์และสัญลักษณ์ถูกสร้างขึ้นด้วยคำสั่ง ln . ในการเริ่มต้นให้สร้างไฟล์ชื่อ LinuxHintFile และไดเร็กทอรีชื่อ LinuxHintDirectory ดังแสดงในภาพด้านล่าง:



สัมผัสLinuxHintFile
rmkdir LinuxHintDirectory
ลส
ราก@ลินุกซ์คำแนะนำ:/บ้าน/linuxhint#





ในการสร้างฮาร์ดลิงก์ชื่อ Link2LHFile ไปยังไฟล์ LinuxHintFile ที่รันในเทอร์มินัล:

lnLinuxHintFile Link2LHFile



หลังจากตรวจสอบกับ ลส เราเห็นฮาร์ดลิงก์ที่เราเพิ่งสร้างขึ้น หากคุณพิมพ์ ls -i คุณจะเห็นไอโหนดของไฟล์ คุณสามารถยืนยันได้ว่าลิงก์ที่เราเพิ่งสร้างนั้นมีหมายเลขไอโหนดเหมือนกันกับไฟล์ต้นฉบับ พิมพ์:

ลส -ผม

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

คุณสามารถค้นหาฮาร์ดลิงก์ภายในไดเร็กทอรีการทำงานโดยเรียกใช้:

หา -พิมพ์NS-ลิงค์+1

คุณยังสามารถค้นหาไฟล์ตาม inodes สำหรับการเรียกใช้นี้:

หา.-inum <InodeNumber>

อย่างที่คุณเห็นมันพบทั้งไฟล์ต้นฉบับและฮาร์ดลิงก์ที่แชร์หมายเลขไอโหนดเดียวกัน

ซอฟต์ลิงค์

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

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

ลิงค์สัญลักษณ์ถูกสร้างขึ้นด้วยโปรแกรม ln แต่เพื่อให้ลิงก์เป็นสัญลักษณ์/ซอฟต์ เราจำเป็นต้องระบุพารามิเตอร์ -NS เพื่อสร้างลิงค์สัญลักษณ์ไปยังไดเร็กทอรี LinuxHintDirectory ที่เรียกว่า LHDLink ให้รัน:

ln -NSLinuxHintDirectory LHDLink

แล้วเรียกใช้ ' ls -i ' เพื่อตรวจสอบว่ามันถูกสร้างขึ้นอย่างถูกต้อง:

ดังที่เราเห็นในกรณีนี้ ลิงก์สัญลักษณ์ถูกสร้างขึ้น แต่มีหมายเลขไอโหนดที่แตกต่างจากไฟล์ต้นฉบับ

เราสามารถแสดงรายการลิงก์สัญลักษณ์ภายในไดเร็กทอรีด้วยคำสั่ง ลส -ล

ในภาพด้านบนเราจะเห็นคำนำหน้าในการอนุญาตของไฟล์แรก NS สำหรับลิงก์สัญลักษณ์ ส่วนท้ายของบรรทัดยังแสดงจุดลิงก์สัญลักษณ์ไปยังไฟล์ใด

ฉันหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ในการทำความเข้าใจความแตกต่างระหว่างฮาร์ดลิงก์และลิงก์สัญลักษณ์ และวิธีการสร้าง ติดตาม LinuxHint เพื่อรับเคล็ดลับและการอัปเดตเพิ่มเติมบน Linux