คำถามที่พบบ่อย: ฮาร์ดลิงก์ใน Linux คืออะไร

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

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

Soft Link และ Hard Link ใน Linux คืออะไร? ลิงก์สัญลักษณ์หรือซอฟต์ลิงก์คือลิงก์จริงไปยังไฟล์ต้นฉบับ ในขณะที่ฮาร์ดลิงก์คือสำเนามิเรอร์ของไฟล์ต้นฉบับ หากคุณลบไฟล์ต้นฉบับ ซอฟต์ลิงก์จะไม่มีค่า เนื่องจากชี้ไปที่ไฟล์ที่ไม่มีอยู่จริง

หากคุณลบ 'my-hard-link' ของฮาร์ดลิงก์ ไฟล์ที่เหลือซึ่งชี้ไปยังพื้นที่เดียวกัน (inode) ในฮาร์ดไดรฟ์จะยังคงมีข้อมูลที่เก็บอยู่ในฮาร์ดไดรฟ์

ฮาร์ดลิงก์คือแบบจำลองที่ถูกต้องของไฟล์จริงที่ชี้ไปที่ ทั้งฮาร์ดลิงก์และไฟล์ที่ลิงก์ใช้ไอโหนดเดียวกัน หากไฟล์ต้นฉบับถูกลบ ฮาร์ดลิงก์ยังคงใช้งานได้ และคุณจะสามารถเข้าถึงไฟล์ได้จนกว่าจำนวนฮาร์ดลิงก์ไปยังไฟล์จะไม่ใช่ 0(ศูนย์)

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

หากคุณพบไฟล์สองไฟล์ที่มีคุณสมบัติเหมือนกันแต่ไม่แน่ใจว่าฮาร์ดลิงก์หรือไม่ ให้ใช้คำสั่ง ls -i เพื่อดูหมายเลขไอโหนด ไฟล์ที่ฮาร์ดลิงก์เข้าด้วยกันจะใช้หมายเลขไอโหนดเดียวกัน หมายเลขไอโหนดที่ใช้ร่วมกันคือ 2730074 หมายความว่าไฟล์เหล่านี้เป็นข้อมูลที่เหมือนกัน

ในการสร้างฮาร์ดลิงก์บนระบบ Linux หรือ Unix:

  1. สร้างฮาร์ดลิงก์ระหว่าง sfile1file และ link1file เรียกใช้: ln sfile1file link1file
  2. ในการสร้างลิงก์สัญลักษณ์แทนฮาร์ดลิงก์ ให้ใช้: ln -s source link
  3. ในการตรวจสอบซอฟต์ลิงก์หรือฮาร์ดลิงก์บน Linux ให้รัน: ls -l source link

16 ต. 2018 ก.

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

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

ใช่. ทั้งคู่ใช้พื้นที่เนื่องจากทั้งคู่ยังมีรายการไดเรกทอรีอยู่

คุณสามารถตรวจสอบว่าไฟล์เป็น symlink ที่มี [ -L file ] หรือไม่ ในทำนองเดียวกัน คุณสามารถทดสอบว่าไฟล์นั้นเป็นไฟล์ปกติที่มี [ -f file ] หรือไม่ แต่ในกรณีนั้น การตรวจสอบจะเสร็จสิ้นหลังจากแก้ไข symlink แล้ว ฮาร์ดลิงก์ไม่ใช่ไฟล์ประเภทหนึ่ง แต่เป็นชื่อที่แตกต่างกันสำหรับไฟล์ (ประเภทใดก็ได้)

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

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

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

เหตุผลที่ไม่อนุญาตให้ทำฮาร์ดลิงก์ไดเร็กทอรีนั้นเป็นเรื่องทางเทคนิคเล็กน้อย โดยพื้นฐานแล้วจะทำลายโครงสร้างระบบไฟล์ โดยทั่วไป คุณไม่ควรใช้ฮาร์ดลิงก์ ลิงก์สัญลักษณ์อนุญาตให้ใช้ฟังก์ชันเดียวกันได้เกือบทั้งหมดโดยไม่มีปัญหา (เช่น ln -s target link )

ชอบโพสต์นี้? กรุณาแบ่งปันให้เพื่อนของคุณ:
ระบบปฏิบัติการวันนี้