การเชื่อมโยงเป็นคุณลักษณะที่น่าสนใจใน Linux ในระบบปฏิบัติการที่เหมือน UNIX ทุกอย่างเป็นไฟล์ โดยพื้นฐานแล้วไฟล์คือลิงก์ไปยังไอโหนด ซึ่งเป็นโครงสร้างข้อมูลชนิดพิเศษที่เก็บทุกอย่างเกี่ยวกับไฟล์บางไฟล์ ยกเว้นชื่อดั้งเดิมและเนื้อหาจริง นี่คือฟีเจอร์ที่ลิงก์ใช้ประโยชน์ ในการสร้างลิงค์คือการสร้างไฟล์อื่นที่ชี้ไปยังไอโหนดพื้นฐานเดียวกันกับไฟล์อื่น ในหลาย ๆ สถานการณ์ มันเป็นวิธีที่มีประโยชน์อย่างเหลือเชื่อ
ดูวิธีสร้างฮาร์ดลิงก์ใน Linux
ฮาร์ดลิงก์ใน Linux
ก่อนดำดิ่งลึก เรามาพูดถึงฮาร์ดลิงก์และซอฟต์ลิงค์กันสักหน่อย มีความแตกต่างพื้นฐานบางอย่างระหว่างพวกเขา ในกรณีของฮาร์ดลิงก์ สามารถมีอยู่ได้ในระบบไฟล์เดียวกันเท่านั้น ในขณะที่ลิงก์สัญลักษณ์จะคงอยู่ในระบบไฟล์ข้าม ยิ่งไปกว่านั้น สามารถทำได้ในไฟล์ปกติเท่านั้น คุณไม่สามารถสร้างไดเร็กทอรีฮาร์ดลิงก์ ดังนั้นจึงไม่สร้างไดเร็กทอรีลูป
หากไฟล์หนึ่งของฮาร์ดลิงก์ถูกลบ ไฟล์นั้นจะลบลิงก์ออกจากไอโหนดพื้นฐาน
คำสั่ง ls สามารถพิมพ์ไอโหนดของไฟล์เป้าหมาย/ไดเร็กทอรี
$ลส -ที่ <file_or_dir>
การสร้างฮาร์ดลิงก์
การสร้างฮาร์ดลิงก์นั้นค่อนข้างง่าย ในการสร้างลิงก์ ln เป็นเครื่องมือเฉพาะที่มีอยู่ใน Linux distros เกือบทั้งหมด
ใช้โครงสร้างคำสั่งต่อไปนี้เพื่อสร้างฮาร์ดลิงก์ โปรดทราบว่าปลายทางควรอยู่ในระบบไฟล์เดียวกัน แฟล็ก -v ใช้สำหรับโหมด verbose
$ln -v <แหล่งที่มา> <ลิงค์>
ตรวจสอบผลลัพธ์
สำหรับการฮาร์ดลิงก์ไดเร็กทอรีนั้นไม่อนุญาต ตามสมมุติฐาน ยังคงสามารถสร้างได้ แต่ Linux distros ส่วนใหญ่จะปิดการใช้งานคุณสมบัตินั้น แม้ว่าคุณจะเรียกใช้การดำเนินการด้วยสิทธิ์รูทก็ตาม สำหรับการลิงก์ไดเรกทอรี ให้ใช้ซอฟต์ลิงก์
ซอฟต์ลิงค์
ซอฟต์ลิงค์โดยทั่วไปจะเรียกว่าลิงค์สัญลักษณ์ ซอฟต์ลิงค์สามารถข้ามระบบไฟล์ได้ ตามคำจำกัดความ มันไม่ใช่ไฟล์มาตรฐาน แต่เป็นไฟล์ที่ชี้ไปยังไฟล์ที่มีอยู่ ในที่นี้ ไฟล์ซอฟต์ลิงก์จะมีค่าไอโหนดต่างกัน แต่จะชี้ไปที่ไฟล์ต้นฉบับ
เช่นเดียวกับการสร้างฮาร์ดลิงก์ เราจะใช้เครื่องมือ ln หากต้องการประกาศสร้างซอฟต์ลิงก์ ให้เพิ่มแฟล็ก -s
$ln -vs <แหล่งที่มา> <ปลายทาง>
ตรวจสอบผลลัพธ์
หากมีลิงก์อยู่แล้ว คุณสามารถอัปเดตได้โดยใช้แฟล็ก -f ที่บังคับให้ ln อัปเดตลิงก์โดยไม่ต้องมีการยืนยันใดๆ หรือคุณสามารถใช้แฟล็ก -i สำหรับการสร้างลิงก์แบบโต้ตอบได้
$ln -sf <แหล่งที่มา> <ปลายทาง>
อย่าลืมตรวจสอบผลลัพธ์
หาลิงค์
สมมติว่ามีหลายลิงก์ไปยังไฟล์เดียวกัน การติดตามลิงก์เหล่านั้นอาจกลายเป็นเรื่องยาก ในสถานการณ์เช่นนี้ ใช้วิธีนี้เพื่อค้นหาลิงก์ทั้งหมด
สำหรับสิ่งนี้ เราต้องการค่า inode ของไฟล์ต้นฉบับ ใช้คำสั่งต่อไปนี้เพื่อค้นหาหมายเลขไอโหนด
$ลส -ที่ <target_file>
ตอนนี้ ใช้หมายเลขไอโหนดเพื่อค้นหาลิงก์ทั้งหมดไปยังไฟล์นั้น ในที่นี้ ไดเร็กทอรีที่ใช้งานอยู่ในปัจจุบันควรเป็นไดเร็กทอรีที่มีไฟล์ต้นฉบับอยู่
การลบลิงค์
หากคุณต้องการปิดใช้งานฮาร์ดลิงก์ วิธีดำเนินการคือลบไฟล์ที่ลิงก์
$rm <ลิงค์>
ความคิดสุดท้าย
การเชื่อมโยงเป็นเครื่องมืออันทรงพลังที่คุณสามารถใช้ได้ในหลาย ๆ สถานการณ์ แม้ว่าจะมีข้อ จำกัด ของตัวเอง แต่ก็สามารถให้ประโยชน์ที่ยอดเยี่ยมแก่หลาย ๆ สถานการณ์
สนใจข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับคำสั่ง ln หรือไม่? ตรวจสอบวิธีการใช้คำสั่ง ln
มีความสุขในการคำนวณ!