এই বাশ কমান্ডটি ওএসএক্সে চলে তবে ব্যাসিবক্সে নয় .. কেন?


0

আমি এই ব্যাশকে ওয়ান-লাইনার পেয়েছি, এটি ওএসএক্সে দুর্দান্ত চলছে, তবে লিনাক্সে নেই, আমি সন্দেহ করছি যে আমার কিউন্যাপের লিনাক্স ডিস্ট্রো (বুসিবক্স) এর সাথে কিছু করার আছে।

ওএসএক্সে চালিত কমান্ডটি এখানে:

find . -type f -name "*.mp4" -exec bash -c 'ffmpeg -i "$0" -c:v copy -c:a libfaac -af "volume=23dB" "fix/$0"' '{}' \;

এখন Qnap এ:

find . -type f -name "*.mp4" -exec bash -c 'ffmpeg -i "$0" -c:v copy -c:a libfaac -af "volume=23dB" "fix/$0"' '{}' \;

ফেরত:

ব্যস্তবক্স ভি 1.01 (2015.05.21-17: 32 + 0000) মাল্টি-কল বাইনারি

ব্যবহার: সন্ধান করুন [পাঠ ...] [এক্সপ্রেসন]

ডিরেক্টরি বিভাগে ফাইল অনুসন্ধান করুন। ডিফল্ট PATH হ'ল বর্তমান ডিরেক্টরি; ডিফল্ট এক্সপ্রেসন হ'ল '-প্রিন্ট'

এক্সপ্রেসনে অন্তর্ভুক্ত থাকতে পারে: -ফলে ডেরিফার্স প্রতীকী লিঙ্কগুলি। -নাম PATTERN ফাইলের নাম (শীর্ষস্থানীয় ডিরেক্টরিগুলি সরানো) PATTERN এর সাথে মেলে। -প্রিন্ট মুদ্রণ (ডিফল্ট এবং অনুমিত)।

টাইপ এক্স ফাইল টাইপ এক্স এর সাথে মেলে (যেখানে এক্স এর মধ্যে একটি: এফ, ডি, এল, বি, সি, ...) - পারম পার্মিশন পারমিশনগুলির সাথে (+ এনএনএন) কোনওটি মিলছে; সমস্ত (-NNN); বা ঠিক (এনএনএন) -সময়ের সময় টাইম (+ এন) এর চেয়ে বেশি সময় পরিবর্তিত হয়; (-N) এর চেয়ে কম বা ঠিক (এন) দিন

ভালো লেগেছে find কমান্ডের কাজ না দেওয়া থাকে, তাই যদি আমি চালানো খোঁজ কমান্ড একা:

find . -type f -name "*.mp4"

এটি ঠিকঠাক কাজ করে, আমি আমার সমস্ত ফাইল পেয়েছি, সুতরাং আমি সন্দেহ করি যে সমস্যাটি ফাইলগুলি এক্সিকিউটিভ কমান্ডের কাছে প্রেরণ করছে এবং আমি এখানে এটি বের করতে পারি না that's


বাশ সংস্করণ ওএসএক্স : জিএনইউ ব্যাশ, সংস্করণ 3.2.57 (1) -রিলিজ (x86_64-আপেল-ডারউইন 14)

বাশ সংস্করণ লিনাক্স : জিএনইউ ব্যাশ, সংস্করণ 3.2.57 (1) -রেলিজ (i686-pc-linux-gnu)


আপনি শুধু পাইপ করবেন না কেন? এই বিশেষ ক্ষেত্রে আপনি পাইপ দিলে ডিবাগ করা সহজ।
থিওডেন

ব্যজিবক্স আপনার সাধারণ লিনাক্স সিস্টেম নয় (উদাহরণস্বরূপ, কিছু এক্সটেনশন সহ বেশিরভাগ পসিক্স)। বরং ব্যাসিবক্স একটি ইউটিলিটির সংগ্রহ যা অনেকগুলি বৈশিষ্ট্যের অভাব রয়েছে। ইতিবাচক দিক থেকে, আপনি যে স্ক্রিপ্টটি বুসিবক্সে চালাতে পারেন তা অন্যান্য সিস্টেমে চালিত হওয়ার সম্ভাবনা রয়েছে। প্রশ্নটি "ব্যাসিবক্স" বলার জন্য পুনরুদ্ধার করা উচিত।
থমাস ডিকি

ভাল ধারণা, আমি কীভাবে প্রতিটি ফাইলকে ffmpeg এ পাইপ করব?
আঙুলের লেখক

@ থমাসডিকি হ্যাঁ, এটিই আমার সন্দেহ, আমার এক
লাইনারকে ব্যাসিবক্সে

আমি এটি ওয়ান-লাইনার হিসাবে চেষ্টা করব না: জটিল যুক্তিটিকে -execএকটি পৃথক স্ক্রিপ্টে পরিণত করা সম্ভবত একটি ভাল সূচনা পয়েন্ট হতে পারে। টুকরোটিকে সহজ রেখে, আপনি একের পর এক কাজ করার সীমাবদ্ধতাগুলি চিহ্নিত করতে পারেন।
থমাস ডিকি

উত্তর:


2

আমি সন্দেহ করি এটি একক / ডাবল উদ্ধৃতি পজিশনের উপরে ট্রিপিং সন্ধানের উপর ভিত্তি করে।

সাধারণত আমি আরও জটিল ক্রিয়াকলাপের জন্য স্ক্রিপ্ট ফাইলে (কনভ্যাশ বলুন) এই জাতীয় কিছু ব্যবহার করি:

find . -type f -name "*.mp4" | while read FILE
do
  ffmpeg -i "$FILE" -c:v copy -c:a libfaac -af "volume=23dB" "fix/$FILE"
done

ডিবাগিং দিয়ে এখন এই ফাইলটি চালান:

bash -xv ./conv.sh

একটি দ্রুত এবং নোংরা স্ক্রিপ্ট যা কাজ করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.