बैश टैब का समापन "~" को "/ घर / ___" में विस्तारित करता है जब यह पहले नहीं था


13

पहले, अगर मैंने टाइप किया ~/biTab, तो पहले, यह बदल जाएगा ~/bin। हालाँकि, आज यह बदल ~/biTabगया /home/username/bin

मैं इसके बजाय पूर्व होगा, लेकिन मुझे यकीन नहीं है कि क्या हुआ ... मैंने अपने बैश पूरा करने के लिए एक स्क्रिप्ट को जोड़ा, लेकिन मैंने इसे अपने से हटा दिया ~./bashrcऔर सर्वर को पुनरारंभ किया।

क्या किसी को पता है कि ऐसा होने का कारण क्या होगा? या मैं इसे वापस कैसे बदलूंगा?

EDIT तो मुझे पता चला कि यह क्या कारण हो सकता है ... यह /etc/bash_completionऔर इस तरह की चीजों के साथ क्या करना है। जब मैं करता हूं bind -v, यह बंद होने के लिए टिल्ड विस्तार दिखाता है।

इसलिए मुझे लगता है कि अगर मैं इसे (एक हैक की तरह) संपादित करता हूं, तो यह दूर हो जाएगा। लेकिन यह वास्तव में कुछ भी संतुष्ट नहीं करता है - यह परिवर्तन पहली जगह में भी कैसे हुआ? मैंने कभी भी कुछ भी नहीं चलाया sudo, और कई बार बंद होने और फिर से शुरू होने के बाद यह व्यवहार कायम रहा।

जवाबों:


8

आप उल्लेख नहीं कर रहे हैं कि आप किस वितरण का उपयोग कर रहे हैं (कृपया अपने प्रश्न में उस जानकारी को शामिल करें), लेकिन मैंने अपने सिस्टम पर अपडेट चलाने के बाद समान व्यवहार देखा है।

मेरा सबसे अच्छा अनुमान यह है कि जब आप सिस्टम अपडेट चलाते हैं, या यदि यह स्वचालित रूप से चलता है, तो "बैश-समापन" पैकेज अपडेट किया गया था जिसने इस व्यवहार को जोड़ा। रेड हैट डेरिवेटिव में, आप पैकेज डॉक्यूमेंटेशन इन पा सकते हैं /usr/share/doc/PACKAGENAME। मेरे में /usr/share/doc/bash-completion-1.3/CHANGES, नए परिवर्तन एक परिवर्तन लॉग प्रारूप के माध्यम से सूचीबद्ध हैं।

संशोधित करने के बजाय /etc/bash_completion, जो संभावित रूप से अगले पैकेज के उन्नयन पर अधिलेखित हो सकता है, आप ~/.inputrcटिल्ड विस्तार को अक्षम करने के लिए बना सकते हैं । मैंने पुष्टि की कि bash_completion-1.3.6 मेरे फेडोरा 16 बॉक्स पर इसे सम्मानित करेगा।

set expand-tilde off

संपादित करें

आपका लाभ भिन्न हो सकता है ~/.inputrc। बैश में ऐसे कार्य होते हैं जो आपके द्वारा किए जाने वाले प्रयास के आधार पर उस व्यवहार को ओवरराइड कर सकते हैं (उदाहरण के लिए कोई प्रोग्राम बनाम फ़ाइल या निर्देशिका)। सुपर यूजर एसई पर यह चर्चा एक vimकमांड को ऑटोकम्प्लीटिंग करते समय एक समान प्रश्न को संबोधित करती है । इस मामले में, मूल पोस्टर ने उनके लिए एक कस्टम फ़ंक्शन जोड़कर उनके मुद्दे को हल किया ~/.bashrc


1
अंतिम बिट भी डिस्ट्रो पर निर्भर करता है। कुछ डिस्ट्रोस (उदाहरण के लिए, गेंटू) वास्तव में सही काम करते हैं और /etcयदि वे बदले गए हैं तो फाइलों को अधिलेखित नहीं करते हैं।
njsg

1
रेड हैट डेरिवेटिव भी ऐसा करते हैं। प्रतिस्थापन कॉन्फ़िगरेशन फ़ाइल xxxफ़ाइल को तब कहा जाता है xxx.rpmnewयदि कॉन्फ़िगरेशन परिवर्तन महत्वपूर्ण नहीं हैं; यदि कॉन्फ़िगरेशन में परिवर्तन वास्तव में आवश्यक हैं, तो मूल का नाम बदला गया है xxx.rpmsaveऔर xxxपैकेज से फाइल है।
वॉनब्रांड

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