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"