आप वास्तव में हैं /home/cpm135/public_html/class- यह "मेरे वर्तमान कामकाजी निर्देशिका क्या है" के सवाल का एकमात्र सही उत्तर है।
जब आप देखें /var/lib/class... कि वास्तव में आप कहां हैं, लेकिन इस बारे में अधिक नहीं है कि आप किस रास्ते पर पहुंचे थे ।
जब आप दौड़ते हैं /bin/pwd, तो यह आपकी वर्तमान कार्यशील निर्देशिका को देखकर पता लगाता है। और .. निर्देशिका (शीर्ष पर सूचीबद्ध ls -la), किस निर्देशिका में काम कर रही है .. के साथ मेल खाता है। और तब तक पीछे की ओर काम करना .. और। उसी निर्देशिका का संदर्भ लें। एक बार यह सब हो जाने के बाद, यह जानता है कि आपकी वर्तमान कार्यशील निर्देशिका क्या है।
जब आप pwdशेल-इन- रन चलाते हैं , तो यह इस प्रक्रिया का पालन नहीं करता है (हालांकि अगर जरूरत हो तो इसमें से कुछ कर सकता है) - इसके बजाय, यह उस पथ को याद करता है जिसे आपने यहां लाने के लिए लिया था। इसलिए हर बार जब आप एक cdकमांड करते हैं, तो आपका शेल याद रखता है कि रास्ते के हिस्से के रूप में आप अभी कहाँ हैं, और आपके द्वारा किए गए pwdसभी cdकमांड के आधार पर इसकी गणना करता है - जो आपका वास्तविक हो सकता है या नहीं। कार्यकारी डाइरेक्टरी।
चीजें वास्तव में अजीब हो सकती हैं जब आप एक करते हैं ln -s . fooऔर cdफू में रखते हैं - /bin/pwdकहेंगे कि आप अभी भी एक ही निर्देशिका में हैं, लेकिन शेल बिलीन pwdआप कहेंगे /foo/foo/foo/foo/foo/foo- भले ही ऐसी कोई निर्देशिका अभी भी मौजूद नहीं है। (उस ने कहा - आप शायद इसमें हो सकते cd हैं।)
यदि निर्देशिकाओं का नाम बदला जाता है, तो भ्रम का एक अन्य स्रोत है। /bin/pwdतब तुरंत परिवर्तन होगा, लेकिन अंतर्निहित pwdजब तक आप ऐसा कुछ नहीं करेंगे जो यह बताता है कि पुरानी निर्देशिका का नाम मायने नहीं रखता है।