আমি উপ-ডিরেক্টরিগুলিতে ছড়িয়ে থাকা একটি নির্দিষ্ট ধরণের সমস্ত ফাইল সন্ধান করার চেষ্টা করছিলাম এবং আমার প্রয়োজনে কেবলমাত্র ফাইলের নাম প্রয়োজন 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 এ ঘটে। আমার নির্ণয়টি হ'ল যে জার্সগুলি কোনও কারণে বেসনামে দুটি ইনপুট লাইনগুলি প্রেরণ করে তবে কেন? এখানে কি হচ্ছে?