मछली का खोल: "शॉप -s डॉटग्लोब" एनालॉग


9

मैं से स्थानांतरित करने के कोशिश कर रहा हूँ bashकरने के लिए fish

के fishअनुरूप क्या है shopt? मैं इस लाइन की नकल करने की कोशिश कर रहा हूँ .bashrc:

shopt -s dotglob # for mv * see hidden files

बहुत यकीन है कि वहाँ कोई नहीं है दस्तावेज़ीकरण डॉट फ़ाइलों के बारे में बात करता है जिसमें किसी भी विन्यास तंत्र के बारे में कोई उल्लेख नहीं है। आपको संभवतः {,.}*मैन्युअल रूप से ग्लोब करना होगा।
ग्लेन जैकमैन

1
ध्यान दें, आप stackoverflow.com पर पूछना चाहते हैं, कुछ मछली अनुचर वहाँ बाहर लटका कर सकते हैं।
ग्लेन जैकमैन

जवाबों:


8

यह जानबूझकर किया गया है। अधिकांश समय उपयोगकर्ता गलती से छिपी हुई फ़ाइलों से मिलान नहीं करना चाहते हैं जो ls(बिना -a) के लिए अदृश्य हैं । आमतौर पर, फ़ाइलें एक कारण के लिए छिपी होती हैं, न कि केवल आपको ट्रोल करने के लिए। इसके अलावा, यदि *छिपी हुई फ़ाइलों से मेल खाता है , तो गैर-छिपी हुई फ़ाइलों का मिलान बहुत मुश्किल होगा।

हालाँकि, बैश के विपरीत shopt -s dotglobछिपी हुई फाइलों का मिलान करने की आवश्यकता नहीं है। बैश shopt -s dotglobमें, निर्देशिका में हर फ़ाइल को गलती से मिलान किए बिना .या मिलान करने का एकमात्र तरीका है ..। हालाँकि, मछली का गोला कभी भी .या ..ग्लब्स के साथ मेल नहीं खा सकता है , इसलिए यह कोई मुद्दा नहीं है (यदि आपको गंभीरता से मिलान करने की आवश्यकता है .या ..किसी मूर्खतापूर्ण कारण से, तो उन्हें स्पष्ट रूप से कहें)। इसके अलावा, मछली डिजाइन के विकल्पों से बचने की कोशिश करती है, इसलिए ऐसा नहीं है dotglob

निर्देशिका में हर एक फ़ाइल से मेल खाने के लिए, आप डॉट्स से शुरू होने वाली फ़ाइलों का पता लगाने के लिए ब्रैकेट विस्तार का उपयोग कर सकते हैं, और जो नहीं हैं। {.,}ब्रैकेट विस्तार है जो डॉट से मेल खाता है जो मौजूद हो सकता है या नहीं। इसके बाद का सितारा हर चीज से मेल खाता है। क्योंकि मछली में ग्लब्स मेल नहीं खा सकते हैं .या .., निम्न कोड उन दो निर्देशिकाओं को छोड़कर सब कुछ मेल खाता है (जो उदास रूप से मेल खाता है, यदि आप नीचे दिए गए कोड का उपयोग करते हैं)

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