লোকেরা xargs
সন্ধানের সাথে সংমিশ্রণে যে কারণটি ব্যবহার করে তা হ'ল যে কোনও প্রোগ্রাম xargs
চালু হওয়ায় একই প্রোগ্রামের অনুরোধে একাধিক ফাইলের নাম পাঠানো হবে । উদাহরণস্বরূপ, যদি foo , বার এবং বাজfind
ফাইলগুলি ফেরত দেয় তবে নিম্নলিখিতগুলি একবারে চলবে :mv
find sourceDir [...] -print0 | xargs -0 mv -t destDir
কার্যকরভাবে, এটি mv
নিম্নলিখিতগুলির মতো কল করে:
mv -t destDir foo bar baz
আপনি প্রয়োজন নেই বা এই আচরণ চান (যেমন আমি অনুমান এখানে কেনার ক্ষেত্রে দেখা যায়), তাহলে আপনি কেবল ব্যবহার করতে পারেন find
'র -exec
।
এই ক্ষেত্রে, একটি সহজ সমাধান হ'ল নীচের মত শর্ট শেল স্ক্রিপ্ট লিখতে হবে:
#!/usr/bin/env bash
[[ -f "$1" ]] || { echo "$1 not found" ; exit 1 ; }
P="$1"
F="$( basename $P )"
ffmpeg -i "$P" -f flv "$F"
হিসাবে সংরক্ষণ করুন myffmpeg.sh
এবং চালান chmod +x myffmpeg.sh
। তারপরে, নিম্নলিখিতটি চালান:
find . -iname "*.mov" -exec /path/to/myffmpeg.sh {} \;
এটি প্রতিটি ফাইলের জন্য একবার শেল স্ক্রিপ্ট শুরু করবে। পরিবর্তে শেল স্ক্রিপ্ট পুরো পথ থেকে ফাইলের নামটি বের করে এবং ffmpeg
উপযুক্ত যুক্তি দিয়ে কল করে।
xargs
সাধারণভাবে একাধিক যুক্তি সম্পর্কে উত্তর সন্ধান করছেন তারা হয়ত স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 703770০৪32২ / দেখতে চান ।