Hard links and junctions

ntfs file system

  • NTFS สนับสนุนการ file links 3 แบบ
    • Hard links
    • Junctions
    • Symbolic
  • เราจะพูดถึง Hard links และ Junctions

Hard links

  • ใช้แสดงถึงไฟล์เดียวกัน ในไดรฟ์เดียวกัน (same volume) ที่อยู่หลายโฟลเดอร์ (path)
  • แก้ไขไฟล์เดียวกันนี้ที่ใดที่หนึ่งก็จะเปลี่ยนแปลงทุกที่
  • ตัวอย่างที่ทำได้
C:\dira\ethel.txt ชี้ไปที่ C:\dirb\dirc\lucy.txt

D:\dir1\tinker.txt ชี้ไปที่ D:\dir2\dirx\bell.txt
C:\diry\bob.bak ชี้ไปที่ to C:\dir2\mina.txt
C:\a\1.txt ชี้ไปที่ C:\a\11.txt
  • ตัวอย่างที่ทำไม่ได้
C:\dira ชี้ไปที่ to C:\dirb #โฟลเดอร์ทำ Hard link ไม่ได้
C:\dira\ethel.txt ชี้ไปที่ to D:\dirb\lucy.txt #ชี้ไฟล์ที่อยู่คนละไดรฟ์ไม่ได้
  • สามารถลบไฟล์ใดไฟล์หนึ่งที่ชี้ไปก็ได้ โดยที่เนื้อหาข้างในจะยังคงอยู่ในไฟล์ที่เหลืออยู่

วิธีสร้าง Hard links

  • ต้องใช้ cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
mklink /H ปลายทาง ต้นทาง
  • ตัวอย่างเช่น ต้องการทำ Hard link ชื่อ cadabra.txt ในโฟลเดอร์ dirb ชี้ไปที่ไฟล์ adabra.tx ในโฟลเดอร์ dira
mklink /H c:\dirb\cadabra.txt c:\dira\adabra.txt
  • ดังภาพ

Junction

  • เรียกอีกอย่างว่า Soft links ต่างจาก Hard links ตรงที่ใช้เชื่อมโยงโฟลเดอร์ ภายในเครื่องคอมพิวเตอร์เครื่องเดียวกัน
  • ตัวอย่างที่เป็นไปได้
C:\dira ชี้ไปที่ C:\dirb\dirc

C:\dirx ชี้ไปที่ D:\diry
  • ตัวอย่างที่เป็นไม่ได้
C:\dira\one.txt ชี้ไปที่ C:\dirb\two.txt #ใช้ Junction กับไฟล์ไม่ได้

C:\dir1 ชี้ไปที่ Z:\dir2 
#ไดรฟ์ Z โดยทั่วไปหมายถึงเน็ตเวิร์คไดรฟ์ ต้องเป็นโฟลเดอร์ในเครื่องคอมพิวเตอร์เครื่องเดียวกัน

วิธีสร้าง Junction

  • เหมือนที่ผ่านมาต้องทำใน cmd บน Windows 11 หรือ cmd ของ administrator บน Windows 10
mklink /J ปลายทาง ต้นทาง
  • ตัวอย่างต้องการสร้าง c:\dirx ชี้ไปที่ c:\dira\dirc
  • ดังภาพ สังเกตว่าตรง dirx จะเห็นเป็น <JUNCTION>
  • การลบ junction สามารถลบได้เลยโดยที่ต้นทางจะไม่ถูกลบด้วย