এর মধ্যে পার্থক্য কী তা জানতে চাই
ls | xargs rm
ls | xargs -i{} rm {}
দুজনেই আমার পক্ষে কাজ করছে
এর মধ্যে পার্থক্য কী তা জানতে চাই
ls | xargs rm
ls | xargs -i{} rm {}
দুজনেই আমার পক্ষে কাজ করছে
উত্তর:
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 টি যুক্তি রয়েছে।
এটি সম্পর্কে আরও ধারণা পেতে এই আইডিয়নের লিঙ্কটি দেখুন।
rmএটি কোনও বিষয় নয়
-i বিকল্প (--replace সমতুল্য) এক ধরণের স্থানধারক তৈরি করে যেখানে xargs সদ্য প্রাপ্ত ইনপুটটি সংরক্ষণ করে। আপনার দ্বিতীয় কমান্ডে, স্থানধারকটি "{}", এটি ফাইন্ড-এক্সেক বিকল্পের মতো কাজ করে। একবার সংজ্ঞায়িত হয়ে গেলে, xargs পুরোপুরি ইনপুটটির সাথে এই স্থানধারককে প্রতিস্থাপন করবে। আপনি যদি "{}" নামের মতো না করেন তবে আপনি নিজের সংজ্ঞা দিতে পারেন:
ls | xargs -iPLACEHOLDER প্রতিধ্বনি প্লেসহোল্ডার
আপনার ক্ষেত্রে, উভয় আদেশই একই ফলাফল তৈরি করছে। দ্বিতীয় ফর্মটিতে, আপনি -i বিকল্পের সাথে সুনির্দিষ্টভাবে ডিফল্ট আচরণ করছেন।