คุณไม่มีชื่อลิงก์ควรเป็น:
cd ~
ln -s / root
ซึ่งจะสร้าง symlink ชื่อ root ในโฮมไดเร็กตอรี่ของคุณ ดังนั้นการใช้งานที่ถูกต้องคือ:
ln -s <target> <link-name>
ข้อความแสดงข้อผิดพลาดที่คุณเห็นคือ./
มีอยู่เสมอและไม่สามารถสร้างลิงก์ด้วยชื่อนี้ได้ดีที่สุดคือการใช้ln
คำสั่ง2กับพารามิเตอร์ทั้งสองเพื่อป้องกันการเชื่อมโยงที่ไม่ถูกต้อง
จากman ln
:
สรุป
(1st form) ln [OPTION]... [-T] TARGET LINK_NAME
(2nd form) ln [OPTION]... TARGET
(3rd form) ln [OPTION]... TARGET... DIRECTORY
(4th form) ln [OPTION]... -t DIRECTORY TARGET...
รายละเอียด
ในรูปแบบที่ 1 สร้างการเชื่อมโยงที่จะมีชื่อTARGET
LINK_NAME
ในฟอร์มที่ 2 ให้สร้างลิงก์ไปยังTARGET
ในไดเรกทอรีปัจจุบัน ในครั้งที่ 3 และครั้งที่ 4 รูปแบบการสร้างการเชื่อมโยงถึงกันในTARGET
DIRECTORY
สร้างการเชื่อมโยงอย่างหนักโดยค่าเริ่มต้นการเชื่อมโยงสัญลักษณ์ด้วย --symbolic
โดยค่าเริ่มต้นแต่ละปลายทาง (ชื่อของการเชื่อมโยงใหม่) ไม่ควรมีอยู่แล้ว 4 เมื่อสร้างฮาร์ดลิงก์แต่ละอันTARGET
จะต้องมีอยู่ ลิงก์สัญลักษณ์สามารถเก็บข้อความโดยพลการ หากแก้ไขในภายหลังลิงก์ที่เกี่ยวข้องจะถูกตีความโดยสัมพันธ์กับไดเรกทอรีหลัก
อาร์กิวเมนต์ที่จำเป็นต้องมีสำหรับตัวเลือกแบบยาวนั้นจำเป็นสำหรับตัวเลือกแบบสั้นเช่นกัน
ตัวเลือก
พารามิเตอร์สุดท้าย<link-name>
, ค่าเริ่มต้นเป็นส่วนสุดท้ายของเป้าหมาย ดังนั้นเมื่อเป้าหมายคือ/path/dir
ชื่อลิงค์จะเริ่มต้นdir
หากไม่ได้ระบุ 1และถ้าคุณเช่นสร้าง~/etc
ด้วยmkdir ~/etc
และจากนั้นเรียกใช้ln -s /etc
ใน~
มันไม่สามารถสร้างลิงค์เพราะชื่อ / ไดเรกทอรีมีอยู่แล้ว 3
และคุณสามารถเห็นลิงค์ที่สร้างในโฮมไดเร็กตอรี่ของคุณ (นี่คือตัวอย่างแน่นอนว่าคุณมีอิสระที่จะตั้งชื่อสิ่งที่คุณต้องการ):
$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /
1 ขอบคุณ@thomasrutter ที่ชี้ให้เห็นว่า
2 ดูเพิ่มเติมman link
และman symlink
3 ขอบคุณ@steeldriver ที่ให้ตัวอย่างในความคิดเห็น
4 เน้นส่วนที่จะทำให้ข้อความเป็นประเด็นเนื่องจากเกี่ยวข้องกับคำถาม
cd /
หรือไม่ หรือคุณต้องการสร้างลิงค์ที่จะวนซ้ำไปเรื่อย ๆ ? ตัวอย่าง:cd root/home/terrance/root/home/terrance/root/home/terrance/root
. . . ฯลฯ