BASH ने "bash: cd: write एरर: सक्सेस" क्यों छापा?


12

मैंने आज कई बार इस पर ध्यान दिया। यदि मैं cd ../Directoryकिसी अन्य निर्देशिका में बदलना चाहता हूं , तो यह "bash: cd: write error: Success" प्रिंट करता है। मैं यह निर्धारित नहीं कर सकता कि पिछले अन्य आदेशों का इससे क्या संबंध हो सकता है।

  • typeset -f प्रिंट कुछ नहीं।
  • alias प्रिंट कुछ नहीं।
  • type -a cd प्रिंट "सीडी एक शेल बिलिन है"।
  • echo $CDPATH एक खाली लाइन प्रिंट करता है।
  • $BASH_VERSION प्रिंट "बैश: 4.2.37 (1) -release: कमांड नहीं मिला"।
  • मैंने केवल इस पर 2-3 बार गौर किया। प्रारंभिक निर्देशिका और लक्ष्य निर्देशिका दोनों स्थितियों में समान थीं। मैंने कई बार इस तरीके से निर्देशिकाएं बदलीं, लेकिन हमेशा त्रुटि का सामना नहीं किया।

ऐसा किसके कारण हो सकता है?


कृपया type -a cdग्लेन के अनुरोध के रूप में आउटपुट जोड़ें ।
terdon

कृपया typeअपने प्रश्न में कमांड का आउटपुट जोड़ें । इसके अलावा, क्या यह सभी निर्देशिकाओं में होता है या केवल यदि आप एक विशिष्ट एक (ओं) में हैं? और का आउटपुट क्या है echo $CDPATH?
terdon

क्या सही बैश संस्करण (इन $BASH_VERSION) आप चला रहे हैं?
गाबे

मेरे पास है bash 4.2.37(1)
ग्राम

जवाबों:


6

शायद एक बग?

यह एक संभावित बग की तरह लगता है। मुझे उसी संदेश को दिखाने वाली एक समान रिपोर्ट मिली। बग बैश: पीडब्लू बिल्डिन लेखन त्रुटि के साथ बाहर निकलता है: सफलता

अंश

यह संदेश प्रदर्शित किया जाएगा यदि फेरर (stdout) गैर-शून्य देता है। किसी कारण के लिए (शायद fflush () कॉल तुरंत चेक से पहले), stdio ferror () को गलत तरीके से सेट किए बिना वापस लौटने का कारण बना रहा है।

क्या यह लगातार दो बार होता है? पीडब्ल्यूडी बिलिन त्रुटि संदेश को प्रिंट करने के बाद क्लीयर () कहता है, इसलिए भले ही स्टडआउट त्रुटि झंडा `चिपक गया ', यह स्पष्ट करना चाहिए।

इतिहास को अपडेट नहीं कर सकते?

त्रुटि मुझे लगता है कि यह निर्देशिकाओं को बदलने में सफल रही, लेकिन cd ../Directoryआपके लिए कमांड लिखने में सक्षम नहीं थी $HOME/.bash_history। मैं पुष्टि करता हूं कि यह फ़ाइल बरकरार है और यह लिखने योग्य है। यह भी पुष्टि करें कि आपकी $HOMEनिर्देशिका लेखन योग्य है और पूर्ण नहीं है।

$ df -h $HOME
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/fedora_greeneggs-home  402G  157G  225G  42% /home

/homeविभाजन अधिक स्थान उपलब्ध है। मुझे ".bash_history" में कुछ भी अजीब नहीं मिल रहा है, यह केवल स्वामी के लिए पढ़ने और लिखने के लिए निर्धारित है। जब भी मैंने एक टर्मिनल छोड़ा, उस टर्मिनल का डेटा अभी भी वहाँ जाता है। क्या यह संभव है क्योंकि मैं एक ही समय में कई टर्मिनल विंडो चला रहा था?
ग्राम

@Village - शायद, लेकिन हर बार एक शेल में एक कमांड चलने पर इसे इतिहास फ़ाइल पर लॉक मिलना चाहिए और जब यह किया जाता है, तब रिलीज़ होता है, ऐसा करने वाली हर दूसरी प्रक्रिया बस इंतजार करेगी।
स्लम

बैश ~/.bash_historyकमांड चलाने के तुरंत बाद नहीं लिखते हैं , लेकिन सत्र बंद होने के बाद, है ना?
SOFe

@Pemapmodder - सही है, यह मेरे लिए अस्पष्ट था यदि ओपी ने ऐसा कुछ किया था: askubuntu.com/questions/67283/…
स्लम

मुझे एक ही समस्या का सामना करना पड़ा, और मुझे पूरा यकीन है कि यह सच नहीं है (क्योंकि मैं su rootउस समय था, और मैंने तुरंत tail /root/.bash_historyऔर प्रासंगिक कुछ भी नहीं देखा, फिर exitअपने सामान्य उपयोगकर्ता को वापस करने के लिए, फिर sudo tail /root/.bash_history, और लाइन (दोनों लाइनें,) चूंकि मैंने दोहराया cd) वास्तव में लिखा गया था।
SOFe

3

आपकी सीडी कमांड या तो एक उपनाम है या सबसे अधिक संभावना है कि एक bash फ़ंक्शन।

typeset -f  # displays functions
alias       # display aliases

यदि उपरोक्त कमांड के साथ नहीं मिला है, which cdतो cdकमांड का मार्ग पता लगाएगा।

के लिए देखो cdसामान्य शुरुआत लिपियों में अन्य नाम या समारोह परिभाषा .bash_profile, .bashrcऔर .profile


typeset -f, aliasऔर which cdसभी कुछ भी नहीं लौटाते हैं, और अन्य फाइलें केवल होती हैं PATH=~/.context/tex/texmf-linux/bin/:$PATH
ग्राम

2
उपयोगtype -a cd
ग्लेन जैकमैन

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