จะสร้างฮาร์ดลิงค์ลินุกซ์ได้อย่างไร?

How Create Hard Links Linux



การเชื่อมโยงเป็นคุณลักษณะที่น่าสนใจใน 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>


ตอนนี้ ใช้หมายเลขไอโหนดเพื่อค้นหาลิงก์ทั้งหมดไปยังไฟล์นั้น ในที่นี้ ไดเร็กทอรีที่ใช้งานอยู่ในปัจจุบันควรเป็นไดเร็กทอรีที่มีไฟล์ต้นฉบับอยู่

$หา.-inum <inode_value>

การลบลิงค์

หากคุณต้องการปิดใช้งานฮาร์ดลิงก์ วิธีดำเนินการคือลบไฟล์ที่ลิงก์

$rm <ลิงค์>

ความคิดสุดท้าย

การเชื่อมโยงเป็นเครื่องมืออันทรงพลังที่คุณสามารถใช้ได้ในหลาย ๆ สถานการณ์ แม้ว่าจะมีข้อ จำกัด ของตัวเอง แต่ก็สามารถให้ประโยชน์ที่ยอดเยี่ยมแก่หลาย ๆ สถานการณ์

สนใจข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับคำสั่ง ln หรือไม่? ตรวจสอบวิธีการใช้คำสั่ง ln

มีความสุขในการคำนวณ!