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*