ब्रेस विस्तार का लाभ लें:
du -b maybehere*/{*,.[^.],.??*}
या वैकल्पिक रूप से
du -b maybehere*/{,.[^.],..?}*
इसके पीछे तर्क शायद स्पष्ट नहीं है, इसलिए यहां स्पष्टीकरण दिया गया है:
*
सभी गैर-छिपी हुई फ़ाइलों से मेल खाता है
.[^.]
उन फाइलों से मेल खाता है जिनके नाम एकल डॉट के साथ शुरू हुए थे, उनके बाद डॉट नहीं; पहले रूप में केवल 2 चरित्र फ़ाइल नाम हैं।
.??*
छिपी हुई फ़ाइलों से मेल खाता है जो कम से कम 3 वर्ण लंबे हैं
..?*
ऊपर की तरह, लेकिन दूसरा वर्ण एक बिंदु होना चाहिए
पूरे बिंदु को वर्तमान और मूल निर्देशिका ( .
और ..
) के लिए हार्ड लिंक को बाहर करना है , लेकिन सभी सामान्य फ़ाइलों को इस तरह से शामिल करें कि उनमें से प्रत्येक को केवल एक बार गिना जाएगा!
उदाहरण के लिए सबसे सरल सिर्फ लिखना होगा
du -b maybehere*/{.,}*
इसका मतलब है कि सूची में एक डॉट .
और "कुछ भी नहीं" (कुछ भी नहीं है ,
और बंद होने वाला है }
), इस प्रकार सभी छिपी हुई फाइलें (जो एक डॉट से शुरू होती हैं) और सभी गैर-छिपी हुई फाइलें (जो "कुछ भी नहीं" से शुरू होती हैं) का मिलान होगा। समस्या यह है कि यह भी मेल खाएगा .
और ..
यह संभवत: सबसे अधिक संभव है कि आप क्या चाहते हैं, इसलिए हमें इसे किसी तरह बाहर करना होगा।
ब्रेस विस्तार के बारे में अंतिम शब्द।
ब्रेस विस्तार एक तंत्र है जिसके द्वारा आप कम वर्ण लिखकर अधिक फ़ाइलों / स्ट्रिंग्स / जो भी कमांडलाइन में शामिल कर सकते हैं। वाक्य रचना है {word1,word2,...}
, यानी यह अल्पविराम से अलग तारों की एक सूची है जो इसके साथ शुरू {
और समाप्त होती है }
। bash
मैनुअल एक बहुत ही बुनियादी और एक ही समय में उपयोग का बहुत ही सामान्य उदाहरण देता है:
$ echo a{b,c,d}e
abe ace ade
maybehere*/.*
और सभी के लिए ऊपर संलग्न करें