এর মধ্যে পার্থক্য কী তা জানতে চাই
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 বিকল্পের সাথে সুনির্দিষ্টভাবে ডিফল্ট আচরণ করছেন।