Ini adalah perilaku Unix standar.
/
di awal jalur mewakili akar disk (atau tingkat awal/tertinggi dari pohon sistem file). Sebagai Documents
bukan dari root, /Documents
tidak dapat ditemukan.
/Users
berada di luar direktori root, sehingga masalah ini tidak terjadi.
Anda bisa menggunakan cd /Users/lukas/Documents
untuk mengubah ke jalur itu.
Sebagai alternatif, Anda dapat menggunakan pengalamatan relatif. Filesystem berbasis Unix memiliki 2 direktori khusus:
.
yang berarti "direktori ini",..
yang berarti direktori induk.
Jika Anda berada di /Users/lukas
, cd ./Documents
akan membawa Anda ke tempat yang benar.
Anggaplah Anda berada di /Users/Lukas/Documents
dan ingin pergi ke /Users/Janes/Documents
, Anda dapat mengeluarkan perintah cd ../../Janes/Documents
- menggunakan ..
akan membawa Anda kembali ke level - jadi Anda akan melakukannya dua kali, sebelum masuk ke jalur relatif baru.
/Users/lukas
adalah jalur "absolut". /
terkemuka mewakili direktori root sistem file Anda.
lukas
adalah jalur "relatif". Karena tidak berlabuh ke root, artinya "cari ini di saat ini direktori". Kecuali jika direktori saat ini adalah /Users
(atau beberapa direktori lain dengan lukas
di dalamnya), ini akan gagal.
Jadi, mari jelajahi contoh Anda, dengan asumsi Anda berada di /Users/lukas
:
$ cd Documents/
/Users/lukas/Documents
Jalur relatif yang diberikan => ubah ke direktori "Dokumen" yang ada di dalam /Users/lukas
.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Jalur 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
Jalur relatif yang diberikan => ubah ke direktori "Pengguna" yang ada di dalam /
.
$ cd /Users
/Users
Jalur absolut yang diberikan => ubah ke direktori /Users
.
Kuncinya setiap saat adalah /
yang memimpin . Dengan itu, jalannya mutlak. Tanpanya, jalannya relatif. Aturan ini tidak ambigu karena semua jalur absolut dimulai dengan /
(karena direktori root selalu disebut /
).
Berikut ini beberapa kodesemu yang secara longgar menjelaskan algoritme tersebut:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
Argumen yang Anda teruskan ke cd
melewati algoritma ini; direktori yang akhirnya Anda ubah adalah jalur yang dikembalikan algoritme.
Bacaan lebih lanjut:
- Tutorial File dan Direktori Unix
Joseph L. Zachary
"Pengantar Pemrograman Ilmiah"