สัญลักษณ์การเชื่อมโยงเป็นไฟล์ขนาดเล็กที่มีสถานที่ตั้ง (เช่นเส้นทางและชื่อแฟ้ม) ของไฟล์เป้าหมายที่มีธงในรายการไดเรกทอรีที่ระบุว่ามันเป็น symlink ที่
เมื่อคุณเปิด symlink ระบบปฏิบัติการจะติดตามตำแหน่งเพื่อค้นหาไฟล์เป้าหมาย หากเป้าหมายเป็น symlink ตัวเองก็จะติดตามตำแหน่งของมันด้วย (1) (2) จนกระทั่งตำแหน่งชี้ไปที่ไฟล์ที่ไม่ใช่ symlink (เรียกว่าFinalFile ) จากนั้นระบบปฏิบัติการจะได้รับinodeของFinalFile (inode มีข้อมูลเมตาเช่นเวลาการแก้ไขและยังมีตัวชี้ไปยังข้อมูลของไฟล์) ในที่สุด inode ของFinalFileจะเปิดขึ้น จากนี้ไปกระบวนการใช้ไอโหนดนั้นเพื่ออ่าน / เขียนไฟล์ ผลที่ตามมาคือการเปลี่ยนชื่อหรือเส้นทางของ symlink การลบ symlink การเปลี่ยนเส้นทางหรือชื่อของFinalFileหรือแม้แต่การลบFinalFile(3) ไม่มีผลกระทบต่อกระบวนการ มันยังอ่านจากไอโหนดเดียวกัน
ในกรณีส่วนใหญ่การดำเนินการข้อมูลไฟล์บน symlink จะส่งผลกระทบต่อFinalFile (เช่นการอ่านและการเขียนไปยัง symlink จะอ่านจาก / เขียนไปยังFinalFile ) แต่มีข้อยกเว้น: การreadlink()
เรียกระบบจะอ่านเนื้อหาของ symlink เอง
การทำงานของเมตาดาต้าไฟล์ (เช่นเปลี่ยนชื่อหรือลบ) ในทางกลับกันมักจะส่งผลต่อ symlink แต่มีข้อยกเว้นอยู่ที่นี่เช่นกันการlstat()
เรียกของระบบนั้นเป็นเช่นstat()
นั้นยกเว้นว่าจะส่งคืนข้อมูลเกี่ยวกับ symlink ตัวเองมากกว่าในFinalFile (2)
(1) มีข้อ จำกัด เกี่ยวกับจำนวนระดับและสิ่งต่าง ๆ มีความซับซ้อนขึ้นเล็กน้อยหากตำแหน่งใน symlink เป็นเส้นทางแบบสัมพัทธ์
(2) อ่านsymlink (7): การจัดการลิงก์สัญลักษณ์สำหรับรายละเอียดเพิ่มเติมman 7 symlink
(3) rm
คำสั่งหรือการunlink()
เรียกระบบไม่ได้ทำการลบไฟล์ จะลบรายการไดเรกทอรีที่ชี้ไปที่ไอโหนดของไฟล์ ไฟล์จะถูกลบออกหากทั้งสองก) ไม่มีรายการไดเร็กทอรี (ฮาร์ดลิงก์) อีกต่อไปที่อ้างถึง inode และ b) ไม่มีกระบวนการใดที่ไฟล์เปิดอยู่