/Users/lukas
adalah jalan "absolut". Yang memimpin/
mewakili direktori root dari sistem file Anda.
lukas
adalah jalur "relatif". Karena tidak berlabuh ke root, itu berarti "lihat ini di direktori saat ini ". Kecuali direktori saat ini adalah /Users
(atau direktori lain dengan alukas
di dalamnya), ini akan gagal.
Jadi, mari kita telusuri contoh Anda, dengan asumsi Anda berada di /Users/lukas
:
$ cd Documents/
/Users/lukas/Documents
Path relatif yang diberikan => ubah ke direktori "Documents" yang ada di dalamnya /Users/lukas
.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Path absolut yang diberikan => ubah ke direktori /Documents
.
$ pwd
/
Ini menunjukkan bahwa Anda sekarang telah mengubah direktori kerja ke direktori root, /
(meskipun cd
perintah untuk melakukan ini tidak ditampilkan).
$ cd Users
/Users
Path relatif yang diberikan => ubah ke direktori "Users" yang ada di dalamnya /
.
$ cd /Users
/Users
Path absolut yang diberikan => ubah ke direktori /Users
.
Kuncinya setiap kali memimpin itu /
. Dengan itu, jalan itu mutlak. Tanpanya, jalan itu relatif. Aturan ini tidak ambigu karena semua path absolut dimulai dengan /
(karena direktori root selalu dipanggil /
).
Berikut ini beberapa pseudocode yang secara longgar menggambarkan algoritma itu:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
Argumen yang Anda berikan harus cd
melalui algoritma ini; direktori yang akhirnya Anda ubah adalah jalur yang dikembalikan algoritma.
Bacaan lebih lanjut: