एक 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*