অন্যান্য অধ্যায়গুলি ইতিমধ্যে উল্লেখ করেছে যে, xargs আপনার বন্ধু। এটি একটি সত্যই শক্তিশালী হাতিয়ার এবং আমি এটি ব্যাখ্যা করার চেষ্টা করব এবং একটি সাধারণ গোটার জন্য একটি কার্যকারিতা সরবরাহ করব।
এক্সার্গস যা করে তা হ'ল ইনপুট থেকে একটি লাইন নেওয়া এবং এটি অন্য কমান্ডে যুক্ত করা, ইনপুটটির প্রতিটি লাইনের জন্য অন্য কমান্ডটি কার্যকর করে। তাই টাইপ করে locate foobar | xargs rm -f
অবস্থান নির্ণয়, কমান্ডের আউটপুট হবে শেষ সম্মুখের patched এর rm -f
কমান্ড, এবং দ্বারা উত্পাদিত প্রতিটি লাইনে জন্য মৃত্যুদন্ড কার্যকর করা locate foobar
।
গোটচা:
কিন্তু যদি আপনার লাইনে ফাঁকা জায়গা থাকে (গুলি) সনাক্ত করে ফিরে আসে? এটি rm -f
কমান্ডটি ভেঙে দেবে কারণ আরএম-এ পাস হওয়া আর্গুমেন্টগুলির ফাইল হওয়া দরকার (যদি আপনি -r সুইচ ব্যবহার না করেন) এবং কোনও ফাইল-পাথ এড়িয়ে যাওয়ার প্রয়োজন হয় বা এতে ফাঁকা স্থান রয়েছে কিনা তা উদ্ধৃত করা দরকার।
xargs চাই, -i সুইচ প্রদান করে প্রতিস্থাপন কমান্ড পরিবর্তে শুধু এটা সংযোজন এর অনুসরণ করে মধ্যে ইনপুট। সুতরাং আমি প্রস্তাবটি পরিবর্তন করতে চাই
locate foobar | xargs -ixxx rm -f 'xxx'
যা কেবলমাত্র তখনই ভেঙে যাবে যদি ফাইলের নামগুলি অ্যাডেস্ট্রোফগুলি সনাক্ত করে ফিরে আসে।
আমি qbi সঙ্গে একমত হবে, যে আপনার হওয়া উচিত ব্যবহারে সাবধান RM -f ! এক্স-জার্গে -p পতাকাটি ব্যবহার করুন, বা এক্সগার্সকে খাওয়ানোর আগে কেবল ফুবারটি সনাক্ত করুন বা আরএম থেকে -f ড্রপ করুন।
locate foobar | xargs -p -ixxx rm -f 'xxx'
rm -i
fooBar``