/Users/lukasadalah jalan "absolut". Yang memimpin/ mewakili direktori root dari sistem file Anda.
lukasadalah 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 cdperintah 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 cdmelalui algoritma ini; direktori yang akhirnya Anda ubah adalah jalur yang dikembalikan algoritma.
Bacaan lebih lanjut: