/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
อัลกอริทึมนี้ ไดเรกทอรีที่คุณเปลี่ยนไปคือเส้นทางที่อัลกอริทึมส่งกลับ
อ่านเพิ่มเติม: