'>' দিয়ে অন্য কমান্ডের স্ট্রিং হিসাবে আর্গুমেন্টটি পাস করবেন?


9

ধরুন আমার কাছে গুচ্ছ ফাইল রয়েছে /tmp/

আমি করি

find . -type f | xargs -iFILES

এবং আমি md5sumপ্রতিটি ফাইলের মধ্যে একটি করতে চাই , একই নামের সাথে একটি ফাইলের আউটপুট, তবে .md5এক্সটেনশন সহ।

find . -type f | xargs -iFILES md5sum FILES > FILES.md5

এটি ফাইন্ড কমান্ড দ্বারা প্রাপ্ত প্রতিটি ফাইলের জন্য একটি এমডি 5 ফাইল তৈরি করার কথা। পরিবর্তে, এটি সমস্ত ফাইল থেকে চেকসাম সহ ডিস্কে একটি একক FILES.md5 ফাইল তৈরি করে।

আমি md5sum কমান্ডকে কীভাবে বলব যে ফাইলগুলি বর্তমান ফাইলের নাম এবং একটি ফাইল আক্ষরিক স্ট্রিং নয়?

উত্তর:


4

আপনি md5sumকোনও ফাইলের আউটপুট প্রেরণ করতে চান তা বলার কিছু উপায় দরকার way যেহেতু find(বা xargs) এর অন্তর্নির্মিত এই কার্যকারিতাটি নেই এবং md5sumকেবলমাত্র স্ট্যান্ডার্ড আউটপুটে কীভাবে মুদ্রণ করা যায় তা কেবল শেল পুনর্নির্দেশই সর্বাধিক সোজা উপায়।

নোট করুন যে অন্য কোনও কারণে আপনার কমান্ড সাধারণ ক্ষেত্রে কাজ করবে না: এর আউটপুট ফর্ম্যাটটি findইনপুট ফর্ম্যাট নয় xargs, এগুলি হোয়াইটস্পেস বা ফাইল যুক্ত নামের সাথে পৃথক \"'find -execপরিবর্তে ব্যবহার করুন।

find . -type f -exec sh -c 'md5sum "$0" >"$0.md5"' {} \;

7

আইও পুনঃনির্দেশ পরিচালনা করতে আপনাকে সাবসেল ব্যবহার করতে হবে:

find . -type f | xargs -iFILES sh -c 'md5sum FILES > FILES.md5'

5

জিএনইউ সমান্তরাল দিয়ে আপনি এটি করতে পারেন:

find . -type f | parallel md5sum {} \> {}.md5

আপনি সমান্তরালে এমডি 5সাম চালানোর অতিরিক্ত সুবিধা পাবেন এবং এই ফাইলগুলির মতো:

My brother's 12" records.txt

আপনার আদেশটি ক্র্যাশ করবে না। আরও জানতে ইন্ট্রো ভিডিওটি দেখুন: http://www.youtube.com/watch?v=OpaiGYxkSuQ

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