निर्देशिकाओं के प्रतीकात्मक लिंक के साथ कैसे काम करें


1

मैं प्रतीकात्मक लिंक के साथ प्रयोग कर रहा हूं और मैं कुछ मुद्दों का सामना कर रहा हूं। पहला यह है कि प्रतीकात्मक लिंक के संबंध में निर्देशिका के बजाय वास्तविक कार्यशील निर्देशिका को प्रदर्शित करने के लिए एक निर्देशिका के प्रतीकात्मक लिंक का अनुसरण करने के बाद ( pwdउदाहरण के लिए, उपयोग करते समय )। दूसरा यह है कि प्रतीकात्मक लिंक में समर्थन करने के बजाय फ़ाइल सिस्टम में वास्तविक निर्देशिका में "बैक अप" कैसे किया जाए।

जवाबों:


1

से man pwdमेरी Ubuntu पर:

आपके शेल में pwd का अपना संस्करण हो सकता है

मैं उपयोग करता हूं bash। सरल pwdआदेश मुझे प्रतीकात्मक लिंक के संबंध में एक रास्ता देता है; अभी तक /bin/pwdवास्तविक पथ नहीं लौटा है। cdआदेश भी एक पार्टी builtin है।

दूसरे शब्दों में: यह शेल विशिष्ट है।

संपादित करें: इस पंक्ति के नीचे मैंने जो कुछ भी लिखा है, थ्रीजी की टिप्पणी (नीचे देखें) एक बेहतर विकल्प प्रतीत होती है।

वास्तविक निर्देशिका में "बैक अप" करने का प्रयास करें cd "$(/bin/pwd)/.."या cd "$(/bin/pwd)"; cd ..। दूसरे रूप को एक उपनाम बनाने के लिए ट्विक किया जा सकता है cd, मुझे लगता है:

alias cd='cd "$(/bin/pwd)"; cd'

इसी तरह से आप बैश pwdबिलिन से छुटकारा पा सकते हैं :

alias pwd=`/bin/pwd`

2
bashविकल्प set -o physicalयहाँ प्रासंगिक है।
thrig

1
@thrig इसे उत्तर दें और श्रेय प्राप्त करें। आपका तरीका सही तरीका लगता है।
कामिल मैकियोरोस्की

यह बहुत दिलचस्प है। क्या आप बता सकते हैं कि क्या चल रहा है pwd? मैं उम्मीद करूंगा कि जैसा व्यवहार होगा वैसा ही होगा /bin/pwd
dsaxton

भी, मैं गलत हूँ या set -o physicalइस pwdमुद्दे को भी संभालता है?
dsaxton

मेरे शेल (बैश) में pwdबिलिन है जो /bin/pwdबाइनरी पर पूर्ववर्ती है । बाइनरी को कभी भी pwdकमांड द्वारा निष्पादित नहीं किया जाता है , क्योंकि शेल सभी काम खुद से करता है और इसे अपने तरीके से करता है। set -o physicalरास्ते के बाद कुछ अलग है।
कामिल मैकियोरोस्की

3

तुम जो चाहते हो pwd -P

से man pwdCentOS 6 पर:

   -L, --logical
          use PWD from environment, even if it contains symlinks

   -P, --physical
          avoid all symlinks

या, बीएसडी pwdमैन पेज से और थोड़ा अधिक मददगार शब्द:

 -L      Display the logical current working directory.

 -P      Display the physical current working directory (all symbolic
         links resolved).

मुझे 100% यकीन नहीं है कि आप "बैक अप" से क्या मतलब है, लेकिन आप का मतलब है "वर्तमान निर्देशिका के माता-पिता में निर्देशिका बदलें," आप उपयोग कर सकते हैं:

cd "$(dirname "$(pwd -P)")"

cd ..यदि आपके वर्तमान कार्य पथ में कोई सहानुभूति नहीं है तो यह बराबर है ।

वैकल्पिक रूप से, आप cd "$(pwd -P)"वर्तमान तार्किक निर्देशिका के भौतिक पथ पर जाने के लिए उपयोग कर सकते हैं , और फिर cd ..वांछित के रूप में उपयोग कर सकते हैं ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.