Anda benar-benar berada /home/cpm135/public_html/class- itulah satu-satunya jawaban yang benar untuk pertanyaan "apa direktori kerja saya saat ini".
Ketika Anda merujuk ke /var/lib/class... itu tidak benar-benar tentang di mana Anda berada, tetapi lebih banyak tentang jalan apa yang Anda gunakan untuk sampai ke sana .
Ketika Anda menjalankan /bin/pwd, itu mengetahui direktori kerja Anda saat ini dengan melihat. dan .. direktori (yang tercantum di bagian atas ls -la), mencari tahu direktori mana yang cocok dengan. dan kemudian bekerja mundur sampai .. dan. lihat direktori yang sama. Setelah selesai melakukan itu, ia tahu apa direktori kerja Anda saat ini.
Ketika Anda menjalankan pwdshell built-in, itu tidak mengikuti prosedur ini (meskipun mungkin melakukan beberapa jika diperlukan) - sebagai gantinya, ia mengingat jalur yang Anda ambil untuk sampai ke sini. Jadi setiap kali Anda melakukan cdperintah, shell Anda akan mengingatnya sebagai bagian dari jalur untuk mencapai tempat Anda sekarang, dan pwdmencetak apa yang telah dihitung berdasarkan semua cdperintah yang telah Anda lakukan - yang mungkin atau mungkin bukan aktual Anda direktori kerja.
Hal-hal bisa menjadi sangat aneh ketika Anda melakukan ln -s . foodan tetap cdmasuk ke foo - /bin/pwdakan mengatakan Anda masih di direktori yang sama, tetapi shell builtin pwdakan mengatakan Anda berada di /foo/foo/foo/foo/foo/foo- meskipun tidak ada direktori seperti itu benar-benar ada. (Yang mengatakan - Anda mungkin bisa cd ke dalamnya.)
Sumber lain kebingungan ada jika direktori diubah namanya. /bin/pwdakan segera mengambil perubahan, tetapi built-in pwdtidak akan sampai Anda melakukan sesuatu yang memberi tahu bahwa nama direktori lama tidak masalah.