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*