Symlink Tutorial ใน Linux - วิธีสร้างและลบ Symbolic Link

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

บางคนเรียก symlinks ว่า "ซอฟต์ลิงก์" ซึ่งเป็นลิงก์ประเภทหนึ่งในระบบ Linux / UNIX ซึ่งตรงข้ามกับ "ฮาร์ดลิงก์"

ความแตกต่างระหว่าง Soft Link และ Hard Link

ซอฟต์ลิงก์คล้ายกับทางลัดและสามารถชี้ไปที่ไฟล์หรือไดเร็กทอรีอื่นในระบบไฟล์ใดก็ได้

ฮาร์ดลิงก์ยังเป็นทางลัดสำหรับไฟล์และโฟลเดอร์ แต่ไม่สามารถสร้างฮาร์ดลิงก์สำหรับโฟลเดอร์หรือไฟล์ในระบบไฟล์อื่นได้

มาดูขั้นตอนที่เกี่ยวข้องในการสร้างและลบ symlink นอกจากนี้เราจะดูว่าลิงก์ที่ใช้งานไม่ได้คืออะไรและจะลบออกได้อย่างไร

วิธีสร้าง Symlink

ไวยากรณ์สำหรับการสร้าง symlink คือ:

ln -s   

lnคือคำสั่งลิงค์ -sระบุธงว่าการเชื่อมโยงควรจะนุ่ม -sยังสามารถป้อนเป็น-symbolicไฟล์.

ตามค่าเริ่มต้นlnคำสั่งจะสร้างฮาร์ดลิงก์ อาร์กิวเมนต์ถัดไปคือpath to the file (or folder)คุณต้องการเชื่อมโยง (นั่นคือไฟล์หรือโฟลเดอร์ที่คุณต้องการสร้างทางลัด)

และอาร์กิวเมนต์สุดท้ายคือpath to linkตัวมันเอง (ทางลัด)

วิธีสร้าง Symlink สำหรับไฟล์ - ตัวอย่างคำสั่ง

ln -s /home/james/transactions.txt trans.txt 

หลังจากใช้คำสั่งนี้คุณจะสามารถที่จะเข้าถึงด้วย/home/james/transactions.txt trans.txtการแก้ไขใด ๆtrans.txtจะปรากฏในไฟล์ต้นฉบับด้วย

โปรดทราบว่าคำสั่งด้านบนนี้จะสร้างไฟล์ลิงก์trans.txtในไดเร็กทอรีปัจจุบันของคุณ คุณสามารถสร้างไฟล์ที่เชื่อมโยงในโฟลเดอร์ที่ลิงก์นี้:

ln -s /home/james/transactions.txt my-stuffs/trans.txt 

ต้องมีไดเร็กทอรีที่เรียกว่า "my-stuffs" อยู่แล้วในไดเร็กทอรีปัจจุบันของคุณ - หากไม่ใช่คำสั่งจะทำให้เกิดข้อผิดพลาด

วิธีสร้าง Symlink สำหรับโฟลเดอร์ - ตัวอย่างคำสั่ง

คล้ายกับข้างบนเราจะใช้:

ln -s /home/james james 

สิ่งนี้จะสร้างโฟลเดอร์ที่เชื่อมโยงชื่อ 'james' ซึ่งจะมีเนื้อหาของไฟล์/home/james. การเปลี่ยนแปลงใด ๆ ในโฟลเดอร์ที่เชื่อมโยงนี้จะมีผลกับโฟลเดอร์เดิมด้วย

วิธีลบ symlink

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

วิธีหนึ่งที่ทำได้คือ:

ls -l  

การรันคำสั่งนี้บนเทอร์มินัลของคุณจะแสดงคุณสมบัติของไฟล์ ดังนั้นหากอักขระตัวแรกเป็นตัวอักษรตัวเล็ก L ('l') หมายความว่าไฟล์ / โฟลเดอร์เป็น symlink

คุณจะเห็นลูกศร (->) ที่ท้ายซึ่งระบุไฟล์ / โฟลเดอร์ที่ซิมลิงค์ชี้ไป

มีสองวิธีในการลบ symlink:

วิธีใช้ยกเลิกลิงก์เพื่อลบ Symlink

ไวยากรณ์คือ:

unlink  

การดำเนินการนี้จะลบ symlink หากกระบวนการสำเร็จ

แม้ว่า symlink จะอยู่ในรูปแบบของโฟลเดอร์อย่าต่อท้าย "/" เนื่องจาก Linux จะถือว่าเป็นไดเร็กทอรีและunlinkไม่สามารถลบไดเร็กทอรีได้

วิธีใช้ rm เพื่อลบ Symlink

อย่างที่เราเห็น symlink เป็นเพียงไฟล์หรือโฟลเดอร์อื่นที่ชี้ไปที่ไฟล์หรือโฟลเดอร์ดั้งเดิม หากต้องการลบความสัมพันธ์นั้นคุณสามารถลบไฟล์ที่เชื่อมโยงได้

ดังนั้นไวยากรณ์คือ:

rm  

ตัวอย่างเช่น:

rm trans.txt rm james 

โปรดทราบว่าพยายามที่จะทำrm james/จะส่งผลให้เกิดข้อผิดพลาดเพราะลินุกซ์จะถือว่า 'เจมส์ /' เป็นไดเรกทอรีซึ่งจะต้องมีตัวเลือกอื่น ๆ เช่นและr fแต่นั่นไม่ใช่สิ่งที่เราต้องการ symlink อาจเป็นโฟลเดอร์ แต่เราเกี่ยวข้องกับชื่อเท่านั้น

ประโยชน์หลักของrmover unlinkคือคุณสามารถลบ symlink หลายรายการพร้อมกันได้เช่นเดียวกับไฟล์

วิธีค้นหาและลบลิงค์เสีย

ลิงก์เสียเกิดขึ้นเมื่อไฟล์หรือโฟลเดอร์ที่ symlink ชี้ไปที่เปลี่ยนเส้นทางหรือถูกลบ

ตัวอย่างเช่นหาก 'transaction.txt' ย้ายจาก/home/jamesไปยัง/home/james/personalลิงก์ 'trans.txt' จะใช้งานไม่ได้ ทุกครั้งที่พยายามเข้าถึงไฟล์จะทำให้เกิดข้อผิดพลาด "ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว" เนื่องจากลิงก์ไม่มีเนื้อหาเป็นของตัวเอง

เมื่อคุณพบลิงก์เสียคุณสามารถลบไฟล์ได้อย่างง่ายดาย วิธีง่ายๆในการค้นหา symlink ที่เสียคือ:

find /home/james -xtype l 

นี่จะแสดงรายการ symlink ที่เสียทั้งหมดในjamesไดเร็กทอรี - จากไฟล์ไปยังไดเร็กทอรีไปจนถึงไดเร็กทอรีย่อย

การผ่าน-deleteตัวเลือกจะลบออกดังนี้:

find /home/james -xtype l -delete 

ห่อ

Symbolic link เป็นคุณลักษณะที่น่าสนใจของระบบ Linux และ UNIX

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