ค้นหาเว็บไซต์

วิธีสร้างฮาร์ดลิงก์และสัญลักษณ์ใน Linux


ในระบบปฏิบัติการที่คล้ายกับ Unix เช่น Linux “ทุกอย่างเป็นไฟล์” และโดยพื้นฐานแล้วไฟล์จะเป็นลิงก์ไปยัง inode (โครงสร้างข้อมูลที่จัดเก็บทุกอย่างเกี่ยวกับไฟล์ นอกเหนือจากชื่อและเนื้อหาจริง)

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

อ่านเพิ่มเติม: วิธีการจัดการไฟล์และไดเร็กทอรี

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

วิธีสร้างฮาร์ดลิงก์ใน Linux

ในการสร้างฮาร์ดลิงก์ใน Linux เราจะใช้ ยูทิลิตี ln ตัวอย่างเช่น คำสั่งต่อไปนี้จะสร้างฮาร์ดลิงก์ชื่อ tp ไปยังไฟล์ topprocs.sh

ls -l
ln topprocs.sh tp
ls -l

เมื่อพิจารณาผลลัพธ์ด้านบน โดยใช้คำสั่ง ls ไฟล์ใหม่จะไม่ถูกระบุเป็นลิงก์ แต่จะแสดงเป็นไฟล์ปกติ นี่หมายความว่า tp เป็นเพียงไฟล์ปฏิบัติการปกติอีกไฟล์หนึ่งที่ชี้ไปยัง inode พื้นฐานเดียวกันกับ topprocs.sh

หากต้องการสร้างฮาร์ดลิงก์ลงในซอฟต์ลิงก์โดยตรง ให้ใช้แฟล็ก -P เช่นนี้

ln -P topprocs.sh tp

วิธีสร้างลิงค์สัญลักษณ์ใน Linux

ในการสร้างลิงก์สัญลักษณ์ใน Linux เราจะใช้ ยูทิลิตี ln เดียวกันกับสวิตช์ -s ตัวอย่างเช่น คำสั่งต่อไปนี้จะสร้างลิงก์สัญลักษณ์ชื่อ topps.sh ไปยังไฟล์ topprocs.sh

ln -s ~/bin/topprocs.sh topps.sh
ls -l topps.sh

จากผลลัพธ์ด้านบน คุณจะเห็นได้จากส่วนสิทธิ์ของไฟล์ว่า topps.sh เป็นลิงก์ที่ระบุโดย l: ซึ่งหมายความว่าเป็นลิงก์ไปยังชื่อไฟล์อื่น

หากมีลิงก์สัญลักษณ์อยู่แล้ว คุณอาจได้รับข้อผิดพลาดในการบังคับการดำเนินการ (ลบลิงก์สัญลักษณ์ที่ออก) ให้ใช้ตัวเลือก -f

ln -s ~/bin/topprocs.sh topps.sh
ln -sf ~/bin/topprocs.sh topps.sh

หากต้องการเปิดใช้งานโหมด verbose ให้เพิ่มแฟล็ก -v เพื่อพิมพ์ชื่อของไฟล์ที่เชื่อมโยงแต่ละไฟล์ในเอาต์พุต

ln -sfv ~/bin/topprocs.sh topps.sh
$ls -l topps.sh

แค่นั้นแหละ! ตรวจสอบบทความที่เกี่ยวข้องต่อไปนี้

  1. fdupes – เครื่องมือบรรทัดคำสั่งเพื่อค้นหาและลบไฟล์ที่ซ้ำกันใน Linux
  2. 5 คำสั่งที่มีประโยชน์ในการจัดการประเภทไฟล์และเวลาของระบบใน Linux

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