Bir bashglob tarafından genişletilebilecek dosya sayısında bir sınırlama (kullanılabilir bellek dışında) yoktur .
Ancak, bu dosyalar yürütülen bir komuta argümanlar olarak iletildiğinde (kabuk yerleşimi veya işlevinin aksine), execve()bazı sistemlerde sistem çağrısının bir sınırıyla karşılaşabilirsiniz . Çoğu sistemde, bu sistem çağrısının kendisine iletilen argümanların ve ortamın kümülatif boyutu üzerinde bir sınırı vardır ve Linux'ta da tek bir argümanın boyutu üzerinde ayrı bir sınır vardır.
Daha fazla ayrıntı için bkz:
Bu sınırı aşmak için şunları kullanabilirsiniz (GNU xargsveya uyumlu olduğu varsayılarak ):
printf '%s\0' foo* | xargs -r0 rm -f
Yukarıda, printfyerleşik ( bashBourne benzeri kabuklarda ve çoğu kabukta) olduğu için execve()sınıra ulaşmıyoruz. Ve xargsargüman listesini sınırlamayı rmönlemek için gereken sayıda çağrıyı böler execve().
İle zsh:
autoload zargs
zargs foo* -- rm -f
İle ksh93:
command -x rm -f foo*