ลิงก์สัญลักษณ์ (สัญลักษณ์) เป็นไฟล์ประเภทหนึ่งที่ชี้ไปยังไฟล์หรือไดเรกทอรีอื่น (โฟลเดอร์) ใน Linux
คุณสามารถสร้างการเชื่อมโยง (สัญลักษณ์) โดยใช้ ln
คำสั่งในบรรทัดคำสั่ง
ลิงก์สัญลักษณ์มีประโยชน์เพราะทำหน้าที่เป็นทางลัดไปยังไฟล์หรือไดเร็กทอรี
ในบทความนี้ ผมจะอธิบายวิธีการใช้ ln
คำสั่งสร้าง symlink ไปยังไฟล์หรือไดเร็กทอรี
ซอฟต์ลิงก์และฮาร์ดลิงก์ใน Linux แตกต่างกันอย่างไร
ซอฟต์ลิงค์หรือลิงค์สัญลักษณ์จะชี้ไปที่ไฟล์ต้นฉบับในระบบของคุณ ฮาร์ดลิงก์จะสร้างสำเนาของไฟล์
ซอฟต์ลิงก์สามารถชี้ไปที่ไฟล์หรือไดเร็กทอรีอื่นบนระบบไฟล์อื่น ในขณะที่ฮาร์ดลิงก์ไม่สามารถทำได้
วิธีสร้างลิงก์เชื่อมโยงไปยังไฟล์
คุณสามารถค้นหาบรรทัดคำสั่งโดยใช้แอปพลิเคชัน Terminal บน Mac หรือใช้ Command Prompt บน Windows
นี่คือไวยากรณ์พื้นฐานสำหรับการสร้าง symlink ไปยังไฟล์ในเทอร์มินัลของคุณ
ln -s existing_source_file optional_symbolic_link
คุณใช้ ln
คำสั่งสร้างลิงค์สำหรับไฟล์และ -s
ตัวเลือกเพื่อระบุว่านี่จะเป็นลิงก์สัญลักษณ์ หากคุณละเว้น -s
ให้สร้างฮาร์ดลิงก์แทน
ไฟล์ที่มีอยู่_source_file แทนไฟล์บนคอมพิวเตอร์ของคุณที่คุณต้องการสร้างลิงก์สัญลักษณ์
พารามิเตอร์ optional_symbolic_link คือชื่อของลิงก์สัญลักษณ์ที่คุณต้องการสร้าง หากละเว้น ระบบจะสร้างลิงค์ใหม่ให้กับคุณในไดเร็กทอรีปัจจุบันที่คุณอยู่
มาดูตัวอย่างเพื่อทำความเข้าใจวิธีการทำงานกันดีกว่า
บนเดสก์ท็อปของฉัน ฉันมีไฟล์ชื่อ example_fcc_file.txt
.
ฉันจะต้องเปิดเทอร์มินัลก่อน จากนั้นตรวจสอบให้แน่ใจว่าฉันอยู่ในไดเร็กทอรีเดสก์ท็อป ฉันสามารถเรียกใช้คำสั่ง cd Desktop
เพื่อไปยังเดสก์ท็อปของฉัน
หลังจากรันคำสั่งนั้น คุณจะเห็นว่าตอนนี้คุณอยู่ในเดสก์ท็อปแล้ว
jessicawilkins@Dedrias-MacBook-Pro-2 ~ % cd Desktop
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop %
ฉันสามารถใช้ ln
คำสั่งสร้างลิงค์สัญลักษณ์ใหม่ชื่อ fcc_link.txt
.
ln -s example_fcc_file.txt fcc_link.txt
เมื่อคุณเรียกใช้คำสั่งนั้นในเทอร์มินัล คุณจะสังเกตเห็นว่าไม่มีการส่งคืน นั่นเป็นเพราะว่าเมื่อ ln
คำสั่งสำเร็จ จะไม่มีเอาต์พุตและจะคืนค่าศูนย์
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % ln -s example_fcc_file.txt fcc_link.txt
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop %
หากต้องการตรวจสอบว่าลิงก์สัญลักษณ์ของคุณสำเร็จ คุณสามารถใช้ ls
สั่งการ. ls
คำสั่งจะแสดงข้อมูลเกี่ยวกับไฟล์และ -l
ธงแสดงถึงการเชื่อมโยงสัญลักษณ์
ls -l fcc_link.txt
เมื่อคุณเรียกใช้คำสั่งนั้น คุณควรเห็นผลลัพธ์ประเภทนี้ในเทอร์มินัล
lrwxr-xr-x 1 jessicawilkins staff 20 Feb 19 19:56 fcc_link.txt -> example_fcc_file.txt
fcc_link.txt -> example_fcc_file.txt
ส่วนของผลลัพธ์จะแสดงให้คุณเห็นว่าลิงก์สัญลักษณ์ชี้ไปที่ไฟล์ชื่อ example_fcc_file.txt
.
คุณควรเห็นลิงก์สัญลักษณ์ใหม่ปรากฏในไดเรกทอรีของคุณ
วิธีสร้างลิงก์สัญลักษณ์ไปยังไดเรกทอรี
ในตัวอย่างนี้ เราต้องการสร้างลิงก์สัญลักษณ์ชื่อ my_music
ที่จะชี้ไปที่โฟลเดอร์เพลงของฉันในโฮมไดเร็กตอรี่ของคอมพิวเตอร์ของฉัน
ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฮมไดเร็กทอรี คุณสามารถเรียกใช้ cd
เพื่อกลับไปที่โฮมไดเร็กตอรี่ของคุณในบรรทัดคำสั่ง
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % cd
jessicawilkins@Dedrias-MacBook-Pro-2 ~ %
จากนั้นคุณสามารถใช้ ln
คำสั่งสร้าง symlink ไปยังไดเร็กทอรี Music
ln -s /Users/jessicawilkins/Music ~/my_music
หากสำเร็จ คุณควรเห็นมันในโฮมไดเร็กตอรี่
วิธีลบลิงก์สัญลักษณ์
หากต้องการลบ symlink คุณสามารถใช้ unlink
หรือ rm
คำสั่ง
หากเราต้องการลบ fcc_link.txt
symlink ที่เราสร้างไว้ก่อนหน้านี้ เราสามารถใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้:
rm fcc_link.txt
unlink fcc_link.txt
ตอนนี้เราควรเห็นว่า symlink ถูกลบออกจากไดเร็กทอรีของเราแล้ว
วิธีเขียนทับลิงก์สัญลักษณ์
หากเราพยายามสร้าง symlink ใหม่ชื่อ fcc_link.txt
จากนั้นจะส่งผลให้เกิดข้อผิดพลาดเนื่องจากมีการใช้งานอยู่แล้วและชี้ไปที่ไฟล์อื่น
ln: fcc_link.txt: File exists
คุณสามารถเขียนทับข้อผิดพลาดนี้ได้โดยใช้แรง (-f
) ตัวเลือก
ln -sf example_fcc_file.txt fcc_link.txt
วิธีเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง ln
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ ln
คำสั่ง จากนั้นคุณสามารถอ่านเกี่ยวกับมันได้ใน man
หน้า (คู่มือการใช้คำสั่ง Linux)
เรียกใช้ man ln
ในเทอร์มินัลของคุณและคุณควรเห็นหน้า man สำหรับ ln
คำสั่ง
LN(1) BSD General Commands Manual LN(1)
NAME
link, ln -- make links
SYNOPSIS
ln [-Ffhinsv] source_file [target_file]
ln [-Ffhinsv] source_file ... target_dir
link source_file target_file
DESCRIPTION
The ln utility creates a new directory entry (linked file) which has the same modes as the original file. It is
useful for maintaining multiple copies of a file in many places at once without using up storage for the
``copies''; instead, a link ``points'' to the original copy. There are two types of links; hard links and sym-
bolic links. How a link ``points'' to a file is one of the differences between a hard and symbolic link.
The options are as follows:
-F If the target file already exists and is a directory, then remove it so that the link may occur. The -F
option should be used with either -f or -i options. If none is specified, -f is implied. The -F option
is a no-op unless -s option is specified.
-h If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f
option, to replace a symlink which may point to a directory.
-f If the target file already exists, then unlink it so that the link may occur. (The -f option overrides
บทสรุป
ลิงก์สัญลักษณ์ (สัญลักษณ์) เป็นไฟล์ประเภทหนึ่งที่ชี้ไปยังไฟล์หรือไดเรกทอรีอื่น (โฟลเดอร์) ใน Linux คุณสามารถสร้างการเชื่อมโยง (สัญลักษณ์) โดยใช้ ln
คำสั่งในบรรทัดคำสั่ง
ลิงก์สัญลักษณ์มีประโยชน์เพราะทำหน้าที่เป็นทางลัดไปยังไฟล์หรือไดเร็กทอรี
นี่คือไวยากรณ์พื้นฐานสำหรับการสร้าง symlink ไปยังไฟล์โดยใช้เทอร์มินัล:
ln -s existing_source_file optional_symbolic_link
นี่คือไวยากรณ์พื้นฐานสำหรับการสร้าง symlink ไปยังไดเร็กทอรีโดยใช้เทอร์มินัล:
ln -s path_to_existing_directory name_of_symbolic_link
หากต้องการลบ symlink คุณสามารถใช้ unlink
หรือ rm
คำสั่ง:
rm name_of_symbolic_link
unlink name_of_symbolic_link
หากคุณต้องการลบ symlink คุณสามารถใช้คำสั่งนี้:
ln -sf path_to_existing_directory name_of_symbolic_link
ฉันหวังว่าคุณจะชอบบทความนี้เกี่ยวกับลิงก์สัญลักษณ์และขอให้โชคดีกับเส้นทางการเขียนโปรแกรมของคุณ