सहानुभूति के बिना pwd


54

अगर मुझे लगता है कि pwdमैं इसका उपयोग करता हूं तो जो कुछ भी मैं वर्तमान निर्देशिका में प्राप्त करने के लिए उपयोग करता हूं। क्या मुझे यह बताने के लिए मिल सकता है कि मैं "असली" निर्देशिका में हूं ... यानी रूट से लेकर मेरी वर्तमान निर्देशिका तक कोई सहानुभूति के उपयोग के बिना?

जवाबों:


70

के लिए POSIX मैनपेज के अनुसार pwd, -Pविकल्प उपयोग का हो सकता है:

-पुनः लिखे गए पूर्ण पथनाम में फाइलनाम नहीं होगा, जो पथनाम के संदर्भ में, प्रकार प्रतीकात्मक लिंक की फाइलों को संदर्भित करता है।

इस प्रकार

$ pwd -P

वह होना चाहिए जो आपको चाहिए।


मैं यह बताना चाहूंगा कि man pwdइस कमांड के विकल्प खोजने के लिए शेल में टाइप करके यह जानकारी आसानी से मिल जाती है ।
Chud37

7

निर्मित किए गए पथ का उपयोग करता है, जब आप cd(और इसे स्टोर करते हैं $PWD) तो शेल पथ का उपयोग करता है । इसका मतलब है कि यदि आपके पास एक जटिल (गहरे) पथ के लिए एक सहानुभूति है, तो यह आपको बताएगा कि आपने वास्तविक पथ के बजाय उस निर्देशिका में बदलने के लिए क्या टाइप किया था। यह आपको वह देने के लिए किया जाता है जो आप ज्यादातर समय चाहते हैं।

/bin/pwdgetcwdसिस्टम कॉल का उपयोग करता है (जो इन दिनों एक लाइब्रेरी कॉल, रीडिंग है /proc/self/cwd) जो वर्तमान निर्देशिका के लिए कैनोनिकल पथ को लौटाता है, सभी सिम्लिंक ट्रैवर्सल्स को छोड़ देता है।

जैसा कि स्टीवन डी ने बताया, अनदेखी करने pwdका -Pविकल्प है $PWD। इसमें -Lसामग्री को वापस करने का विकल्प भी है $PWD। इसके लिए मैन पेज pwdयह नहीं कहता है कि कौन सा विकल्प डिफ़ॉल्ट रूप से उपयोग किया जाता है, लेकिन अनुभव मुझे बताता है कि उपरोक्त विवरण सही है (शेल pwdबनाम /bin/pwd)। हालांकि आपको शायद उस पर भरोसा नहीं करना चाहिए और बस उपयोग करना चाहिए pwd -P


2
आपके द्वारा वर्णित व्यवहार लिनक्स सिस्टम पर एक है जहां /bin/pwdGNU है pwdजब POSIXLY_CORRECT सेट नहीं है। POSIX सिस्टम पर जहां pwdअंदर है /bin/bin/pwd$ PWD का उपयोग करेगा और सिम्बलिंक के साथ पथ वापस कर सकता है। GNU pwd उस POSIX तरीके से व्यवहार करेगा जब उसे अपने वातावरण में POSIXLY_CORRECT वैरिएबल मिलेगा।
स्टीफन चेज़लस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.