शेल इनिट समस्या जब टैब पर क्लिक करें, तो getcwd में क्या गलत है?


153

एक बार जब मैं बैश पर टैब पर क्लिक करता हूं, तो त्रुटि संदेश दिखाई देगा, क्या गलत है?

symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success
symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success

कभी-कभी, त्रुटि संदेश है:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No s uch file or directory

शेल इनाइट समस्या को कैसे हल करें?

जवाबों:


281

यह आमतौर पर तब होता है जब आपकी वर्तमान निर्देशिका अब मौजूद नहीं है। सबसे अधिक संभावना है, दूसरे टर्मिनल से आप उस निर्देशिका को हटा दें (स्क्रिप्ट या जो भी हो)। इससे छुटकारा पाने के लिए, यदि आपकी वर्तमान निर्देशिका को इस बीच में फिर से बनाया गया था, तो cdदूसरी (मौजूदा) निर्देशिका में और फिर cdवापस; सबसे सरल होगा: cd; cd -


2
मुझे नहीं लगता कि मेरी डायर मौजूद नहीं है, न कि किसी ने इसे फिर से बनाया है, मैं / रूट में हूं ... इसलिए मुद्दा शायद आपके कहने के
हिसाब से

1
क्या आप अपने गृह एनवी चर की जांच कर सकते हैं? echo $HOME; यदि वह किसी अनजान स्थान की ओर इशारा करता है, तो यह नहीं है।
कोस्टी सियादुतु

1
(मैं tmux में शेल का उपयोग करता हूं) टैब कुछ समय में अच्छी तरह से काम करता है, लेकिन कभी-कभी जब मैं tmux के साथ नया टैब बनाता हूं, टैब दबाएं, और यह त्रुटि दिखाई देती है, मुझे नहीं पता कि क्या हुआ :(
hugemeow

@kevinarpe यह जानना अच्छा है, धन्यवाद! मैंने हमेशा सोचा था कि यह कुछ भी नहीं करने के लिए पर्याप्त स्मार्ट थाcd .
कॉस्टी सियादुतु

2
@kevinarpe, हाँ, $PWDPOSIX द्वारा परिभाषित होने की गारंटी है। देखें pubs.opengroup.org/onlinepubs/9699919799/utilities/...
चार्ल्स डफी

61

बस निर्देशिका को दूसरे में बदलें और वापस आएं। संभवत: वह हटा दिया गया हो या स्थानांतरित कर दिया गया हो।


7

संयोग से, क्या यह OverlayFS (या कुछ अन्य विशेष फ़ाइल सिस्टम प्रकार) का उपयोग करके एक निर्देशिका पर हो रहा है?

मेरे पास सिर्फ यह मुद्दा था कि मेरे बैश के क्रॉस-संकलित संस्करण का आंतरिक कार्यान्वयन कैसे होगा, getcwdजिसमें ओवरलेफ़्फ़ के साथ समस्याएँ हैं। मुझे इस बारे में जानकारी यहाँ मिली:

ऐसा लगता है कि यह bash में getcwd () के आंतरिक कार्यान्वयन का पता लगाया जा सकता है। जब क्रॉस-संकलित किया जाता है, तो यह मालकॉक के getcwd () उपयोग के लिए जांच नहीं कर सकता है, इसलिए यह सतर्क है और GETCWD_BROKEN सेट करता है और getcwd () के आंतरिक कार्यान्वयन का उपयोग करता है। यह आंतरिक कार्यान्वयन OverlayFS के साथ अच्छी तरह से काम नहीं करता है।

http://permalink.gmane.org/gmane.linux.embedded.yocto.general/25204

आप बैश को कॉन्फ़िगर और पुनर्निर्माण कर सकते हैं bash_cv_getcwd_malloc=yes(यदि आप वास्तव में बैश का निर्माण कर रहे हैं और आपका सी लाइब्रेरी मॉलॉक को गेटवेड कॉल करता है)।


मैं पूरा पुस्तकालय अद्यतन करके अपनी त्रुटि को ठीक करने में सक्षम था
रिचर्ड डे

5

हाँ, सीडी; और सीडी - काम करेगा। कारण यह देख सकता है कि, निर्देशिका को किसी अन्य टर्मिनल या किसी अन्य प्रोग्राम से हटा दिया गया है और इसे फिर से बनाया जा रहा है। इसलिए आई-नोड प्रविष्टि को संशोधित किया जाता है, इसलिए प्रोग्राम पुरानी आई-नोड प्रविष्टि तक नहीं पहुंच सकता है।


मैं इसे पूरा पुस्तकालय अपडेट करके ubuntu 14 पर ठीक करने में सक्षम था: digitalocean.com/community/tutorials/…
रिचर्ड डे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.