วิธีที่ง่ายที่สุดในการเชื่อมโยงไปยังไดเรกทอรีปัจจุบันเป็นเส้นทางที่แน่นอนโดยไม่ต้องพิมพ์สตริงเส้นทางทั้งหมดจะเป็น
ln -s "$(pwd)/foo" ~/bin/foo_link
target
(ตอนแรก) อาร์กิวเมนต์สำหรับln -s
คำสั่งทำงานเทียบกับสถานที่การเชื่อมโยงสัญลักษณ์ไม่ใช่ไดเรกทอรีปัจจุบันของคุณ ช่วยให้ทราบว่าโดยพื้นฐานแล้ว symlink ที่สร้างขึ้น (อาร์กิวเมนต์ที่สอง) จะเก็บข้อความที่คุณให้ไว้สำหรับอาร์กิวเมนต์แรก
ดังนั้นหากคุณทำสิ่งต่อไปนี้:
cd some_directory
ln -s foo foo_link
จากนั้นย้ายลิงก์ไปรอบ ๆ
mv foo_link ../some_other_directory
ls -l ../some_other_directory
คุณจะเห็นว่าfoo_link
พยายามที่จะชี้ไปfoo
ยังไดเรกทอรีที่มันอาศัยอยู่นอกจากนี้ยังทำงานร่วมกับลิงก์สัญลักษณ์ที่ชี้ไปยังเส้นทางสัมพัทธ์ หากคุณทำสิ่งต่อไปนี้:
ln -s ../foo yet_another_link
แล้วย้าย yet_another_link
../foo
ไปยังไดเรกทอรีอื่นและตรวจสอบที่จะชี้ไปที่คุณจะเห็นว่ามันก็ชี้ไปที่ นี่เป็นพฤติกรรมที่ตั้งใจเนื่องจากลิงก์สัญลักษณ์หลายครั้งอาจเป็นส่วนหนึ่งของโครงสร้างไดเรกทอรีที่สามารถอยู่ในเส้นทางสัมบูรณ์ต่างๆ
ในกรณีของคุณเมื่อคุณสร้างลิงค์โดยพิมพ์
ln -s foo ~/bin/foo_link
foo_link
เพียงแค่เก็บลิงค์ไปยังfoo
สัมพันธ์กับที่ตั้งของมัน การใส่$(pwd)
ชื่อของอาร์กิวเมนต์เป้าหมายไว้ด้านหน้าจะเป็นการเพิ่มพา ธ สัมบูรณ์ของไดเร็กทอรีการทำงานปัจจุบันเพื่อให้ลิงก์ถูกสร้างขึ้นด้วยเป้าหมายที่แน่นอน