एक bash
ग्लोब द्वारा विस्तारित की जा सकने वाली फ़ाइलों की संख्या के लिए कोई सीमा (उपलब्ध स्मृति के अलावा) नहीं है ।
हालाँकि जब उन फ़ाइलों को एक कमांड के तर्क के रूप में पारित किया जाता है जिसे निष्पादित किया जाता है (शेल बिलिन या फ़ंक्शन के विपरीत), तो आप execve()
कुछ सिस्टम पर सिस्टम कॉल की सीमा में चला सकते हैं । अधिकांश प्रणालियों पर, उस सिस्टम कॉल में तर्कों के संचयी आकार और उस पर पारित पर्यावरण की सीमा होती है, और लिनक्स पर भी एकल तर्कों के आकार की एक अलग सीमा होती है।
अधिक जानकारी के लिए, देखें:
उस सीमा के आसपास काम करने के लिए, आप (जीएनयू xargs
या संगत मानकर ) उपयोग कर सकते हैं :
printf '%s\0' foo* | xargs -r0 rm -f
ऊपर, चूंकि printf
बिल्ट-इन ( bash
और अधिकांश बॉर्न-जैसे गोले हैं), हम execve()
सीमा से नहीं टकराते। और सीमा से बचने के लिए xargs
तर्कों की सूची को उतने ही rm
आह्वान के रूप में विभाजित करेगा execve()
।
के साथ zsh
:
autoload zargs
zargs foo* -- rm -f
के साथ ksh93
:
command -x rm -f foo*