สร้าง symlink จากโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์ด้วยชื่อที่ต่างกันหรือไม่?


81

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

ถ้าฉันพยายามทำสิ่งนี้:

ln -s /home/user/project  /var/www/html

ระบบจะสร้างโฟลเดอร์ชื่อโปรเจคต์ภายในโฟลเดอร์ html และลิงก์ที่ มีวิธีเชื่อมโยงเพื่อให้ไดเรกทอรี 'html' ชี้ไปที่เนื้อหาของโครงการหรือไม่ พวกเขาจะต้องมีชื่อเดียวกันหรือไม่?

หมายเหตุ : ฉันต้องเชื่อมโยงหลายไฟล์ที่ซ่อนอยู่ด้วย ฉันสามารถทำได้โดยใช้ln?

คำตอบ:


109

จากman ln:

ตามค่าเริ่มต้นแต่ละปลายทาง (ชื่อลิงก์ใหม่) ไม่ควรมีอยู่แล้ว

ในขณะที่คุณมีอยู่แล้วไดเรกทอรีชื่อhtmlการเชื่อมโยงจะถูกสร้างขึ้นภายในมีชื่อคือเป้าหมาย/var/www/htmlproject

หากคุณต้องการให้ symlink /var/www/htmlชี้ไปที่/home/user/projectคุณไม่ควรมีไดเรกทอรีhtmlอยู่ก่อน ดังนั้นคุณควรมี/var/wwwแล้วเรียกใช้ต่อไปนี้จะสร้าง symlink ที่ต้องการ (อย่าทำเช่นนี้จนกว่าคุณจะแน่ใจ):

ln -s /home/user/project /var/www/html

นี่คือตัวอย่าง:

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

และใช่คุณสามารถสร้าง symlink ของไฟล์ที่ซ่อนอยู่


13
ฉันลองสิ่งนี้ แต่ symlink ที่ได้นั้นเป็นไฟล์และไม่ใช่ไดเรกทอรี
Alex

1
@Alex ซอฟต์ลิงค์ปรากฏขึ้นเหมือนไฟล์ แต่ผลลัพธ์คือมันทำงานเหมือนโฟลเดอร์ที่มันชี้ไป
Chanoch

5
นอกจากนี้โปรดทราบว่าไดเรกทอรีแหล่งข้อมูลต้องไม่เป็นเส้นทางแบบสัมพัทธ์ต้องเป็นแบบสัมบูรณ์ดังนั้นln -s ./ /var/www/htmlจะไม่ทำงาน
Diego AndrésDíaz Espinoza

0

ตรวจสอบให้แน่ใจ HTML /var/www/ไดเรกทอรีไม่ได้สร้างขึ้นภายใต้

คำสั่งนั้นคือ: ln -s -T /home/user/project /var/www/html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.