/Users/lukasเป็นเส้นทาง "แน่นอน" ส่วนนำแสดง/ถึงรูตไดเร็กทอรีของระบบไฟล์ของคุณ
lukasเป็นเส้นทาง "ญาติ" เนื่องจากไม่ได้ยึดกับรูทหมายความว่า "ค้นหาสิ่งนี้ในไดเรกทอรีปัจจุบัน " เว้นแต่ไดเรกทอรีปัจจุบันคือ/Users(หรือไดเรกทอรีอื่นที่มีlukasใน) สิ่งนี้จะล้มเหลว
ดังนั้นลองสำรวจตัวอย่างของคุณโดยสมมติว่าคุณอยู่ใน/Users/lukas:
$ cd Documents/
/Users/lukas/Documents
ทางญาติได้รับ => การเปลี่ยนแปลงไปยังไดเรกทอรี "เอกสาร" /Users/lukasที่อยู่ภายใน
$ cd /Documents
-bash: cd: /Documents: No such file or directory
เส้นทางที่แน่นอนได้รับ => /Documentsการเปลี่ยนแปลงไปยังไดเรกทอรี
$ pwd
/
สิ่งนี้แสดงให้เห็นว่าคุณได้เปลี่ยนไดเรกทอรีการทำงานเป็นไดเรกทอรีรากแล้ว/(แม้ว่าcdคำสั่งในการทำสิ่งนี้จะไม่ปรากฏขึ้น)
$ cd Users
/Users
ทางญาติได้รับ => เปลี่ยนไดเรกทอรี "ผู้ใช้" /ที่อยู่ภายใน
$ cd /Users
/Users
เส้นทางที่แน่นอนได้รับ => /Usersการเปลี่ยนแปลงไปยังไดเรกทอรี
/ที่สำคัญทุกครั้งที่เป็นผู้นำที่ กับมันเส้นทางที่แน่นอน ก็ไม่มีเส้นทางนั้นเป็นญาติ กฎนี้ไม่มีความกำกวมเนื่องจากพา ธ สัมบูรณ์ทั้งหมดเริ่มต้นด้วย/(เนื่องจากเรียกว่าไดเรกทอรีรากเสมอ/)
นี่คือ pseudocode บางตัวที่อธิบายอัลกอริทึมอย่างหลวม ๆ :
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
อาร์กิวเมนต์ที่คุณส่งผ่านไปยังcdอัลกอริทึมนี้ ไดเรกทอรีที่คุณเปลี่ยนไปคือเส้นทางที่อัลกอริทึมส่งกลับ
อ่านเพิ่มเติม: