Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

Linux ไม่มีลัดทาง (shortcuts) แต่มี Symbolic Links — หรือที่เรียกกันว่า Symlinks แต่ Symlinks คืออะไรจริงๆ? และสร้างอย่างไร? มาค้นหาคำตอบกัน

เราจะลองคำสั่งบนการติดตั้ง Ubuntu แม้ไวยากรณ์จะทำงานเหมือนกันในทุก Linux distros น่าเชื่อถือได้ว่า symlinks สร้างได้บน Mac PC ด้วย

Symbolic Links คืออะไร?

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

ในระบบปฏิบัติการแบบ GUI คุณจะสร้าง shortcuts สำหรับ OS แบบ CUI (เช่น Linux distro ใดๆ) คำตอบคือ symlink แม้ Windows ก็ใช้ symlinks ได้ในบางสถานการณ์

Symlink หรือ symbolic link คือไฟล์ที่ชี้ไปยังไฟล์หรือไดเรกทอรีอื่น — แม้จะอยู่ในระบบไฟล์หรือพาร์ติชันที่ต่างกันก็ตาม การเปิด symlink ให้คุณเข้าถึงไฟล์ต้นฉบับเดียวกัน การเปลี่ยนแปลงใดๆ จะสะท้อนกลับไปที่ไฟล์หลักเช่นกัน

สิ่งนี้รวมถึงสิทธิ์การเข้าถึง — การใช้ chmod เปลี่ยนสิทธิ์ของไฟล์ symlink จะเปลี่ยนสิทธิ์ของไฟล์เป้าหมายจริงๆ

ประเภทของ Symlinks

Symbolic links เรียกอีกอย่างว่า soft links ตามชื่อที่บ่งชี้ ไม่ใช่ระบบเชื่อมโยงไฟล์ประเภทเดียวใน Linux Hard links ใช้เป็นทางเลือกแทน symlinks ในบางสถานการณ์ แต่มีข้อจำกัดหลายประการ

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

จากลำดับแรก Hard links คือชื่อไฟล์ที่ชี้ไปยัง inode เดียวกัน แม้จะทำให้มีประสิทธิภาพด้านพื้นที่จัดเก็บและความเร็วในการเข้าถึง แต่ก็จำกัดให้อยู่ในระบบไฟล์หรือพาร์ติชันเดียวกันเท่านั้น และเนื่องจากลักษณะการเข้าถึงโฟลเดอร์ใน Linux คุณไม่สามารถใช้ hard links สำหรับไดเรกทอรีได้

Soft links หรือ Symbolic links กลับคล้าย shortcuts บนเดสก์ท็อป แต่ละ soft link เป็นไฟล์เล็กๆ ที่ชี้ไปยังข้อมูลต้นฉบับโดยไม่ได้เชื่อมโยงโดยตรง หมายความว่า soft links ชี้ไปยังไฟล์และไดเรกทอรีบนพาร์ติชันและระบบไฟล์อื่นๆ ได้โดยไม่มีข้อจำกัด

Hard Links VS Soft Links — ควรใช้ประเภทไหน?

Soft links เป็นรูปแบบลิงก์ที่หลากหลายที่สุด ใช้ได้กับทั้งไฟล์และไดเรกทอรีข้ามระบบไฟล์หลายระบบโดยไม่มีข้อจำกัด แต่เราทำไมถึงมี hard links? Hard links ให้ข้อได้เปรียบอะไรเหนือ symlinks?

ในทฤษฎี Hard links มีประสิทธิภาพมากกว่า เนื่องจากใช้ inode เดียวกัน จึงไม่ใช้พื้นที่ดิสก์เพิ่มเติมและเข้าถึงได้เร็วกว่า soft links ดังนั้นผู้ดูแลระบบจึงแนะนำให้ใช้ hard links ทุกครั้งที่ทำได้

อย่างไรก็ตาม ข้อเสียของ symbolic links น้อยมาก คอมพิวเตอร์สมัยใหม่ไม่สนใจพื้นที่จัดเก็บเพิ่มอีกไม่กี่กิโลไบต์ และเว้นแต่คุณจะเติมระบบด้วย soft links หลายล้านลิงก์ ขนาดไฟล์เพิ่มเติมนั้น نادرๆ ที่สำคัญ

การสร้าง Symbolic Links

Symbolic links — หรือลิงก์ไฟล์โดยทั่วไป — สร้างด้วยคำสั่ง ln โดยค่าเริ่มต้นคำสั่งนี้สร้าง hard links เพื่อสร้าง symbolic link คุณต้องเพิ่มแฟล็ก -s ไปกับคำสั่ง ln

ไวยากรณ์ง่ายมาก คำสั่ง ln รับสองพารามิเตอร์ — พาธของไฟล์ (หรือโฟลเดอร์) ที่จะลิงก์ไป และพาธของไฟล์ลิงก์ที่จะสร้าง

เช่นนี้:

ln -s user_names.txt names

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

จะสร้าง symlink ชื่อ names ที่เชื่อมต่อกับไฟล์ข้อความ user_names เพื่อดูว่า symlink ถูกสร้างจริง ให้ใช้คำสั่ง ls

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

เห็นได้ว่า Ubuntu แสดงสีต่างกันสำหรับหมวดหมู่ไฟล์ต่างๆ ไดเรกทอรีเป็นสีน้ำเงินเข้ม และ symlinks เป็นสีฟ้าอ่อน (cyan จริงๆ)

เราสามารถใช้ไวยากรณ์เดียวกันสร้าง symlink สำหรับโฟลเดอร์ได้:

ln -s examples example_folder

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

สำหรับการสร้าง symlinks ไปยังไฟล์และโฟลเดอร์ในไดเรกทอรีอื่น ให้ใช้ full path ตัวอย่างเช่น:

ln -s examples/example3.txt distant_example

สร้าง Symbolic Links (Symlinks) ใน Linux: คู่มือปฏิบัติขั้นตอนต่อขั้นตอน

ข้อจำกัดของ Symlinks

Symbolic links เป็นวิธียอดเยี่ยมในการเชื่อมโยงไฟล์ทั่วระบบโดยไม่ต้องคัดลอก แต่ก็มีข้อจำกัดของตัวเอง แม้ soft links จะน้อยกว่าข้อจำกัด hard links ยังมีสิ่งที่ต้องระวัง

ข้อแรก คำสั่ง ln ไม่ได้ตรวจสอบลิงก์ที่สร้างขึ้น หมายความว่าสามารถป้อนชื่อไฟล์ที่ไม่มีอยู่จริงได้ และจะไม่ได้รับข้อผิดพลาดใดๆ วิธีเดียวยืนยันลิงก์คือลองใช้งานดูว่าชี้ไปยังไฟล์ที่ถูกต้องหรือไม่

ข้อที่สอง แม้การเข้าถึงหรือเปลี่ยนสิทธิ์ของ symlink จะเปลี่ยนคุณสมบัติของไฟล์ต้นฉบับ แต่การลบไฟล์ไม่ได้ คุณสามารถลบ symbolic link ได้อย่างปลอดภัยโดยไม่กระทบไฟล์หรือไดเรกทอรีที่ลิงก์

การสร้าง Symlinks ใน Linux

ความยุ่งยากในการใช้เทอร์มินัลสร้าง symbolic links คือการเข้าถึงไฟล์สำคัญที่กระจายอยู่ในไดเรกทอรีต่างๆ วิธีฉลาดคือสร้าง symbolic links ไปยังไฟล์เหล่านั้นจากไดเรกทอรี home เอง เหมือน shortcuts บนเดสก์ท็อป

และไม่เหมือน hard links symlinks สร้างได้ง่ายโดยไม่มีข้อจำกัด แม้สำหรับการเชื่อมต่อกับไดเรกทอรีหรือไฟล์ในพาร์ติชันและระบบไฟล์ที่ต่างกัน จงจำไว้ว่าหมายความว่า symlink อาจชี้ไปยังไฟล์ที่ไม่มีอยู่ — คุณต้องลองเข้าถึงลิงก์เพื่อตรวจสอบว่าไฟล์มีอยู่จริง