সংক্ষিপ্ত উত্তর হল হ্যাঁ".
xargs -I{} cmd
নির্দিষ্ট প্রতিস্থাপনের স্ট্রিংয়ের একাধিক সংঘটনকে অনুমতি দেয়, তবে কেবলমাত্র কার্যকর করা প্রতিটি ইনপুট আইটেম সরবরাহ করবে cmd
, নিম্নলিখিত উদাহরণের অর্থ, echo
তিনবার আহ্বান করা হবে:
$ mkdir t
$ cd t
$ touch foo bar baz
$ find . -type f | xargs -I{} echo {} {}
./bar ./bar
./baz ./baz
./foo ./foo
মনে রাখবেন যদি আপনি প্রতিটি ইনপুট আইটেমটি একবার কমান্ড লাইন প্রতি একটির বেশি উল্লেখ করার প্রয়োজন হবে না, তারপর find -exec cmd {} +
প্রায় সমতূল্য find | xargs
(ছাড়া -I
), ব্যতীত এটি ডিফল্ট দ্বারা হোয়াইটস্পেস সঙ্গে ফাইলের নামের পরিচালনা (পরেরটির, ব্যবহার সঙ্গে সঠিকভাবে এমবেডেড হোয়াইটস্পেস হ্যান্ডেল করতে find -print0 | xargs -0
)।
find -exec cmd {} +
এতে একাধিক ইনপুট আইটেমগুলি পাস করবে cmd
তবে প্রতিস্থাপনের স্ট্রিং ( {}
) এর কেবলমাত্র একটি ঘটনা অনুমোদিত। এই ডিফল্ট আচরণ xargs
ছাড়া -I
। নিম্নলিখিত উদাহরণে, echo
প্রতিটি আর্গুমেন্টের জন্য কেবল একবারই অনুরোধ করা হয় (বৃহত ইনপুট সেটগুলির জন্য, উভয় পন্থাই ইনপুটটিকে অংশগুলিতে বিভক্ত করে দেয় যে প্রতিটি উত্পন্ন কমান্ড লাইন এর চেয়ে কম হয় PATH_MAX
, অর্থ cmd
একাধিক বার ডাকা যেতে পারে, তবে একাধিকবার কম হয়) প্রতি ইনপুট আইটেম):
$ find . -type f -exec echo {} +
./bar ./baz ./foo
$ find . -type f | xargs echo
./bar ./baz ./foo