আমি উপ-ডিরেক্টরিগুলিতে ছড়িয়ে থাকা একটি নির্দিষ্ট ধরণের সমস্ত ফাইল সন্ধান করার চেষ্টা করছিলাম এবং আমার প্রয়োজনে কেবলমাত্র ফাইলের নাম প্রয়োজন needed আমি এর মাধ্যমে পথের উপাদানটি সরিয়ে নেওয়ার চেষ্টা করেছি basename, তবে এটি এর সাথে কার্যকর হয়নি xargs:
$ find . -name '*.deb' -print | xargs basename
basename: extra operand `./pool/main/a/aalib/libaa1_1.4p5-37+b1_i386.deb'
Try `basename --help' for more information.
আমি এই উভয় প্রকরণের সাথে একই জিনিস (ঠিক একই ত্রুটি) পেয়েছি:
$ find . -name '*.deb' -print0 | xargs -0 basename
$ find . -name '*.deb' -print | xargs basename {}
এটি অন্যদিকে প্রত্যাশার মতো কাজ করে:
$ find . -name '*.deb' -exec basename {} \;
foo
bar
baz
এটি আপ টু ডেট সাইগউইন এবং ডেবিয়ান 5.0.3 এ ঘটে। আমার নির্ণয়টি হ'ল যে জার্সগুলি কোনও কারণে বেসনামে দুটি ইনপুট লাইনগুলি প্রেরণ করে তবে কেন? এখানে কি হচ্ছে?