ধনুর্বন্ধনী সঙ্গে এবং লিনাক্স ছাড়া xargs মধ্যে ভিন্ন কি


16

এর মধ্যে পার্থক্য কী তা জানতে চাই

ls | xargs rm

ls | xargs -i{} rm {}

দুজনেই আমার পক্ষে কাজ করছে

উত্তর:


15

xargs rmডাকা হবে rmসব আর্গুমেন্ট সহ যেমন প্যারামিটার ব্যবধান সহ গেলেন।

xargs -i{} rm {}rm {}প্রতিটি আর্গুমেন্টের জন্য প্রার্থনা করবে এবং {}বর্তমান যুক্তি দ্বারা প্রতিস্থাপন করা হবে।

আপনার যদি 2 টি যুক্তি থাকে a.txtএবং b.txt, xargs rm এটি কল করবে

rm a.txt b.txt

তবে xargs -i{} rm {}ডাকবে

rm a.txt
rm b.txt

এটি কারণ -iবিকল্পটি বোঝায় এমন -L 1বিকল্প যার অর্থ হ'ল কমান্ডটি প্রতিবার rmকেবল 1লাইন নেবে । এবং এখানে প্রতিটি লাইনে কেবল 1 টি যুক্তি রয়েছে।

এটি সম্পর্কে আরও ধারণা পেতে এই আইডিয়নের লিঙ্কটি দেখুন।


এক যে আরও ভাল

1
@ ব্যবহারকারী19140477031 আপনি যা পরিচালনা করছেন তা নির্ভর করে। কারণ rmএটি কোনও বিষয় নয়
শিপলু মোকাদ্দিম

2

ধনুর্বন্ধনী সহ এটি rmপ্রতিটি ফাইলের জন্য একটি প্রক্রিয়া উত্সাহিত করবে । ধনুর্বন্ধনী ছাড়া, xargsপ্রতিটি rmকমান্ডে যথাসম্ভব ফাইলের নাম পাঠানো হবে ।

তুলনা করা

ls | xargs echo

এবং

ls | xargs -i echo '{}'

1

-i বিকল্প (--replace সমতুল্য) এক ধরণের স্থানধারক তৈরি করে যেখানে xargs সদ্য প্রাপ্ত ইনপুটটি সংরক্ষণ করে। আপনার দ্বিতীয় কমান্ডে, স্থানধারকটি "{}", এটি ফাইন্ড-এক্সেক বিকল্পের মতো কাজ করে। একবার সংজ্ঞায়িত হয়ে গেলে, xargs পুরোপুরি ইনপুটটির সাথে এই স্থানধারককে প্রতিস্থাপন করবে। আপনি যদি "{}" নামের মতো না করেন তবে আপনি নিজের সংজ্ঞা দিতে পারেন:

ls | xargs -iPLACEHOLDER প্রতিধ্বনি প্লেসহোল্ডার

আপনার ক্ষেত্রে, উভয় আদেশই একই ফলাফল তৈরি করছে। দ্বিতীয় ফর্মটিতে, আপনি -i বিকল্পের সাথে সুনির্দিষ্টভাবে ডিফল্ট আচরণ করছেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.