Tidak ada batasan (selain memori yang tersedia) untuk jumlah file yang dapat diperluas oleh bashglob.
Namun ketika file-file itu dilewatkan sebagai argumen untuk perintah yang dieksekusi (sebagai lawan dari builtin shell atau fungsi), maka Anda dapat mengalami batas execve()panggilan sistem pada beberapa sistem. Pada kebanyakan sistem, pemanggilan sistem itu memiliki batasan ukuran kumulatif argumen dan lingkungan yang diteruskan ke sana, dan di Linux juga ada batasan terpisah pada ukuran argumen tunggal.
Untuk detail lebih lanjut, lihat:
Untuk mengatasi batas itu, Anda dapat menggunakan (dengan asumsi GNU xargsatau kompatibel):
printf '%s\0' foo* | xargs -r0 rm -f
Di atas, karena printfbuilt-in (di bashdan sebagian besar shell Bourne-like), kami tidak mencapai execve()batasnya. Dan xargsakan membagi daftar argumen menjadi rmdoa sebanyak yang diperlukan untuk menghindari execve()batasan.
Dengan zsh:
autoload zargs
zargs foo* -- rm -f
Dengan ksh93:
command -x rm -f foo*