ซิมลิงก์ (Symbolic Link) หรือที่เรียกกันสั้นๆ ว่า "Symlink" เป็นประเภทของไฟล์ที่ชี้ไปยังไฟล์หรือไดเรกทอรี (โฟลเดอร์) อื่นๆ ในระบบ Linux
คุณสามารถสร้าง Symlink ได้โดยใช้คำสั่ง ln ในบรรทัดคำสั่ง (Command Line)
Symbolic Links มีประโยชน์มาก เพราะทำหน้าที่เป็น "ทางลัด" (Shortcut) ไปยังไฟล์หรือไดเรกทอรี ทำให้เข้าถึงข้อมูลได้สะดวกขึ้นโดยไม่ต้องจดจำพาธยาวๆ
ในบทความนี้ จะแนะนำวิธีใช้คำสั่ง ln เพื่อสร้าง Symlink ไปยังไฟล์หรือไดเรกทอรี พร้อมตัวอย่างที่ปฏิบัติได้จริง
ความแตกต่างระหว่าง Soft Link และ Hard Link ใน Linux
Soft Link (Symbolic Link) จะชี้ไปยังไฟล์ต้นฉบับบนระบบของคุณ หากไฟล์ต้นฉบับถูกลบ Soft Link จะกลายเป็น "Broken Link" (ลิงก์เสีย)
Hard Link จะสร้างโครงสร้างข้อมูลที่ชี้ไปยัง inode เดียวกันกับไฟล์ต้นฉบับ หมายความว่า Hard Link คล้ายกับ "สำเนา" ของไฟล์ แต่ใช้พื้นที่ดิสก์ร่วมกัน
ข้อแตกต่างสำคัญ:
- Soft Link สามารถชี้ไปยังไฟล์หรือไดเรกทอรีบนระบบไฟล์ (File System) ที่ต่างกันได้ ส่วน Hard Link ไม่สามารถทำได้
- Soft Link สามารถลิงก์ไปยังไดเรกทอรีได้ ส่วน Hard Link ไม่สามารถลิงก์ไปยังไดเรกทอรีได้ (ในระบบสมัยใหม่ส่วนใหญ่)
- การลบไฟล์ต้นฉบับจะทำให้ Soft Link เสีย แต่ Hard Link ยังคงเข้าถึงข้อมูลได้
วิธีสร้าง Symlink ไปยังไฟล์
คุณสามารถเปิดบรรทัดคำสั่งได้ผ่านแอปพลิเคชัน Terminal บน macOS หรือ Command Prompt / PowerShell บน Windows (หากใช้ WSL)
ไวยากรณ์พื้นฐานสำหรับการสร้าง Symlink ไปยังไฟล์:
ln -s ไฟล์ต้นทาง_ที่มีอยู่จริง [ชื่อ_symlink_ที่ต้องการ]
- ใช้คำสั่ง
lnเพื่อสร้างลิงก์ - ตัวเลือก
-sระบุว่าเป็น Symbolic Link (Soft Link) — หากละเลย-sจะสร้าง Hard Link แทน ไฟล์ต้นทาง_ที่มีอยู่จริงคือ ไฟล์บนคอมพิวเตอร์ที่คุณต้องการสร้าง Symlinkชื่อ_symlink_ที่ต้องการ(Optional) คือ ชื่อของ Symlink ที่จะสร้างขึ้น หากละเว้น ระบบจะสร้าง Symlink ชื่อเดียวกับไฟล์ต้นทางในไดเรกทอรีปัจจุบัน
ตัวอย่างการสร้าง Symlink ไปยังไฟล์
สมมติบน Desktop มีไฟล์ชื่อ example_fcc_file.txt
- เปิด Terminal และเข้าไปในไดเรกทอรี Desktop:
cd Desktop - สร้าง Symlink ชื่อ
fcc_link.txtชี้ไปยังexample_fcc_file.txt:ln -s example_fcc_file.txt fcc_link.txt - คำสั่งจะไม่แสดงผลลัพธ์ (No output) หากสำเร็จ — นี่เป็นพฤติกรรมปกติของ
ln - ตรวจสอบด้วยคำสั่ง
ls -l:ls -l fcc_link.txt
ผลลัพธ์ที่คาดหวัง:
lrwxr-xr-x 1 user group 20 Feb 19 19:56 fcc_link.txt -> example_fcc_file.txt
ส่วน fcc_link.txt -> example_fcc_file.txt แสดงว่า Symlink ชี้ไปยังไฟล์ต้นทางอย่างถูกต้อง
วิธีสร้าง Symlink ไปยังไดเรกทอรี
ตัวอย่าง: สร้าง Symlink ชื่อ my_music ชี้ไปยังโฟลเดอร์ Music ใน Home Directory
- กลับไปที่ Home Directory:
cd - สร้าง Symlink โดยระบุพาธเต็มของไดเรกทอรีต้นทาง:
ln -s /home/username/Music ~/my_musicหมายเหตุ: ใช้
~แทน Home Directory ของผู้ใช้ปัจจุบัน - ตรวจสอบด้วย
ls -l ~/my_music
วิธีลบ Symlink
สามารถลบ Symlink ได้ 2 วิธี:
rm fcc_link.txt
unlink fcc_link.txt
ข้อแตกต่าง: rm สามารถลบหลายไฟล์พร้อมกันได้ ส่วน unlink รับได้เพียงอาร์กิวเมนต์เดียวเท่านั้น ทั้งคู่ไม่ลบไฟล์ต้นทาง — ลบแค่ Symlink เท่านั้น
วิธีทับซ้อน (Overwrite) Symlink ที่มีอยู่
หากพยายามสร้าง Symlink ชื่อซ้ำ จะเกิดข้อผิดพลาด:
ln: fcc_link.txt: File exists
แก้ไขได้โดยใช้ตัวเลือก Force (-f) ร่วมกับ -s:
ln -sf example_fcc_file.txt fcc_link.txt
เรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง ln
อ่านคู่มือ (Manual Pages) ได้โดยรัน:
man ln
จะแสดงตัวเลือกต่างๆ เช่น -f (force), -i (interactive), -v (verbose), -n (no-dereference) และอื่นๆ
สรุป
- Symlink คือ ไฟล์ที่ชี้ไปยังไฟล์/ไดเรกทอรีอื่น — ทำหน้าที่เป็น Shortcut
- สร้างด้วย
ln -s ต้นทาง [ลิงก์] - ลบด้วย
rmหรือunlink - ทับซ้อนได้ด้วย
ln -sf - Soft Link ลิงก์ข้าม File System ได้ Hard Link ไม่ได้
หวังว่าบทความนี้จะช่วยให้คุณเข้าใจและใช้งาน Symbolic Links ใน Linux ได้อย่างมีประสิทธิภาพ!