Katakanlah Anda memiliki direktori /dir1dan /dir2/linked, di mana yang terakhir adalah symlink ke yang sebelumnya.
Ketika Anda cdke linkeddan pwd, Anda mendapatkan output /dir2/linked. Jika Anda kemudian cd .., Anda akan dikenakan /dir2. Perilaku ini konsisten dengan konsep Anda /dir2/linkedsebelumnya. Namun, seperti yang saya pahami, direktori induk ( ..) dari direktori apa pun disimpan dalam inode direktori (yaitu: secara fisik di disk). Jelas, karena /dir2/linkedini benar-benar /dir1, direktori induk pada inode harus/
Untuk lebih memperumit masalah, sementara di dalam /dir2/linked, output ls ..dan cd .. ; ls .berbeda! Sepertinya cdmenghormati jalan yang disinkronkan, sementara lsmenghormati jalan "fisik". Seperti yang disebutkan dalam pertanyaan ini , ada cd -Puntuk kasus penggunaan ini.
man pwd menyebutkan direktori kerja "fisik" dan "logis", tetapi saya masih memiliki beberapa pertanyaan saat ini:
- Apakah perilaku ini selalu disediakan oleh
PWDvariabel lingkungan, sebagaimana disebutkan dalamman pwd? - Mengapa default
cddanlsmemiliki perilaku yang berbeda, jika keduanya perintah shell (yaitu: bukan program)? - Apakah program tipikal (bukan perintah shell) digunakan
PWDsebagai ganti jalur fisik? Saya menyadari ini tergantung pada implementasinya, tetapi adakah aturan mainnya?