Xargs কমান্ড সাধারণত কমান্ড লাইনে ব্যবহৃত হয় যেখানে এক কমান্ডের আউটপুট অন্য কমান্ডের ইনপুট আর্গুমেন্ট হিসাবে প্রেরণ করা হয়।
বেশিরভাগ ক্ষেত্রে, "পার্বত্য" এবং "পুনঃনির্দেশকরণ" অপারেটরগুলি একই ধরনের লেনদেন সঞ্চালনের পরে, কোনও বিশেষ কমান্ড যেমন xargs এর জন্য এটি প্রয়োজন হয় না। যাইহোক, মাঝে মাঝে মৌলিক পাইপিং এবং পুনঃনির্দেশকরণ প্রক্রিয়া নিয়ে সমস্যা রয়েছে, উদাঃ, যদি আর্গুমেন্টগুলিতে স্পেস থাকে তবে xargs অতিক্রম করে।
উপরন্তু, xargs প্রদত্ত সমস্ত আর্গুমেন্ট প্রক্রিয়া করতে নির্দিষ্টভাবে বারবার নির্দিষ্ট কমান্ডটি চালায়। প্রকৃতপক্ষে, আপনি প্রতিটি সময় xargs নির্দিষ্ট কমান্ডটি চালানোর সময় স্ট্যান্ডার্ড ইনপুট স্ট্রিম কতগুলি আর্গুমেন্ট পড়তে হবে তা নির্দিষ্ট করতে পারেন।
সাধারণভাবে, এক কমান্ডের আউটপুট ব্যবহার করা হয় যদি দ্বিতীয় কমান্ডের অপশন বা আর্গুমেন্টের অংশ হিসাবে তথ্যটি প্রবাহিত হয় (পাইপ অপারেটর "|" ব্যবহার করে) xargs কমান্ডটি ব্যবহার করা উচিত। তথ্যটি দ্বিতীয় কমান্ডের (স্ট্যান্ডার্ড) ইনপুট হওয়ার উদ্দেশ্যে যদি নিয়মিত পাইপিং যথেষ্ট হয়।
উদাহরণস্বরূপ, যদি আপনি ফাইলের নাম এবং ডিরেক্টরিগুলির তালিকা তৈরি করতে ls কমান্ডটি ব্যবহার করেন এবং তারপর এই তালিকাটি echo নির্বাহ করার জন্য xargs কমান্ডের মধ্যে পাইপ করুন, তবে আপনি প্রতিটি পুনরাবৃত্তি প্রতি ইকো করে কতগুলি ফাইল নাম বা ডিরেক্টরি নাম প্রক্রিয়া করে তা নির্দিষ্ট করতে পারেন। :
ls | xargs -n5 প্রতিধ্বনি
এই ক্ষেত্রে, echo একটি সময়ে পাঁচ ফাইল বা ডিরেক্টরি নাম পায়। যেহেতু echo শেষে একটি নতুন লাইন চরিত্র যুক্ত করে, প্রতিটি লাইনে পাঁচটি নাম লেখা হয়।
যদি আপনি এমন একটি কমান্ড চালান যা বৃহত্তর এবং আনুমানিক সংখ্যা আইটেমগুলি (উদাঃ ফাইল নামগুলি) ফেরত দেয় যা পরবর্তী প্রক্রিয়াকরণের জন্য অন্য কমান্ডে প্রেরণ করা হয় তবে দ্বিতীয় কমান্ডটি ওভারলোড এবং ক্র্যাশিং এড়াতে প্রাপ্ত সর্বোচ্চ আর্গুমেন্টগুলি নিয়ন্ত্রণ করার একটি ভাল ধারণা।
নিম্নলিখিত কমান্ড লাইনটি cp কমান্ডে যাওয়ার আগে 200 টি গোষ্ঠীর সন্ধান করে উত্পন্ন ফাইল নামগুলির প্রবাহটি ভাগ করে, যা তাদের কাছে কপি করে ব্যাকআপ ডিরেক্টরি।
খুঁজে বের করুন ./type f -name "* .txt" -print | xargs -l200 -i cp -f {} ./backup
অনুসন্ধান কমান্ডের "./" উপাদান অনুসন্ধানের জন্য বর্তমান ডিরেক্টরিটি নির্দিষ্ট করে। "টাইপ F" যুক্তি ফাইলগুলিতে অনুসন্ধানকে সীমিত করে এবং "-name" * .txt "ফ্ল্যাগ আরও কিছু ফিল্টার করে যা" .txt "এক্সটেনশান নেই। -i Zargs সংকেত যে পতাকা {} নোট বাষ্প প্রতিটি ফাইল নাম প্রতিনিধিত্ব করে।
নিম্নোক্ত কমান্ডটি ডিরেক্টরী / tmp এর নিচে বা নীচে নামযুক্ত ফাইলগুলি খুঁজে বের করে এবং তাদের মুছে ফেলে।
খুঁজুন / tmp -name কোর-টাইপ f -print | xargs / bin / rm -f
নোটাইন, একক বা ডাবল কোট, বা স্পেস ধারণকারী কোনও ফাইলের নাম থাকলে এটি ভুলভাবে কাজ করবে। নিম্নলিখিত সংস্করণে ফাইল নামগুলি এমনভাবে প্রক্রিয়া করে যে ফাইল বা ডিরেক্টরি নামগুলি একক বা ডবল উদ্ধৃতি ধারণ করে, স্পেস বা নতুন লাইন সঠিকভাবে পরিচালনা করা হয়।
খুঁজুন / tmp -name মূল-টাইপ f -print0 | xargs -0 / bin / rm -f
পরিবর্তে -i বিকল্প আপনি ব্যবহার করতে পারেন -আমি পতাকা যা এই উদাহরণ হিসাবে কমান্ড আর্গুমেন্ট ইনপুট লাইন দ্বারা প্রতিস্থাপিত স্ট্রিং নির্দিষ্ট করে:
ls dir1 | xargs-i {} -t mv dir1 / {} dir / {} / code>
প্রতিস্থাপন স্ট্রিং "{}" হিসাবে সংজ্ঞায়িত করা হয়। এর অর্থ, কমান্ড আর্গুমেন্টগুলিতে "{}" এর কোনও ঘটনা পাইপ অপারেশনের মাধ্যমে আর্গুমেন্টে প্রেরিত ইনপুট উপাদান দ্বারা প্রতিস্থাপিত হয়। এটি আপনাকে কমান্ডের আর্গুমেন্টগুলিতে (বারবার) নির্বাহিত নির্দিষ্ট অবস্থানে ইনপুট উপাদানগুলি স্থাপন করতে সক্ষম করে।




