ডিডি কমান্ডে 'বিএস', 'কাউন্ট' এবং 'সিক' এর মধ্যে পার্থক্য কী?


24

আমি কীভাবে ব্যবহার করতে হবে তার বর্ণনা দিয়ে অনেক গাইড এবং ফোরামের পোস্ট পড়েছি ddতবে একটি জিনিস আমি লক্ষ্য করেছি যে লোকেরা সর্বদা bs=, count=এবং seek=স্যুইচগুলির জন্য বিভিন্ন মান ব্যবহার করে ।

দয়া করে কেউ এই সুইচগুলি ঠিক কী করে তা ব্যাখ্যা করতে পারেন (ম্যান পৃষ্ঠাটি খুব বিশদ নয়), এবং বিভিন্ন কাজের জন্য তাদের জন্য সর্বোত্তম সেটিংস কী তা ব্যাখ্যা করতে পারেন, যেমন / ডিভ / র্যান্ডম বা / ডিভ / শূন্য থেকে ফাইল তৈরি করা এবং ওভাররাইটিং পার্টিশন এবং বাহ্যিক ড্রাইভ


ব্যবহার করে দেখুন DD জন্য গনুহ ডকুমেন্টেশন বা POSIX সংস্করণ
jw013

উত্তর:


27

ম্যানপেজের চেয়ে এটি কীভাবে ভাল ব্যাখ্যা করা যায় তা আমি সত্যিই জানি না।

bs=blocksize সেট করে, উদাহরণস্বরূপ bs=1M1MiB blocksize হবে।

count=কেবলমাত্র এই সংখ্যক ব্লক অনুলিপি করে (ডিফল্ট চিরকালের জন্য চলতে থাকবে বা ইনপুট শেষ না হওয়া অবধি)। আদর্শভাবে ব্লকগুলি bs=আকারের হয় তবে পঠনগুলি অসম্পূর্ণ হতে পারে, সুতরাং যদি আপনি count=নির্দিষ্ট পরিমাণের ডেটা ( count*bs) সরবরাহ করার জন্য ব্যবহার করেন তবে আপনার সরবরাহও করা উচিত iflag=fullblock

seek= আউটপুট ডিভাইসের একেবারে শুরুতে লেখার পরিবর্তে আউটপুটটিতে এই সংখ্যাটি ব্লক সন্ধান করে।

সুতরাং, উদাহরণস্বরূপ, এই আউটপুট y\nফাইলের 8MiB অবস্থানের 1MiB মূল্য অনুলিপি করে। সুতরাং মোট ফাইলাইজ 9MiB হবে।

$ yes | dd bs=1M count=1 seek=8 iflag=fullblock of=outputfile
$ ls -alh outputfile
9.0M Jun  3 21:02 outputfile
$ hexdump -C outputfile
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00800000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
00900000

যেহেতু আপনি /dev/randomপার্টিশনগুলির উল্লেখ এবং ওভাররাইটিং করছেন ... এটি চিরতরে নেবে কারণ /dev/random(পাশাপাশি পাশাপাশি /dev/urandom) খুব ধীর গতির হয়। আপনি কেবল shred -v -n 1পরিবর্তে ব্যবহার করতে পারেন , এটি দ্রুত এবং সাধারণত যে কোনও জায়গায় পাওয়া যায়।


21

ঠিক আছে, আপনি বলেছিলেন যে ম্যান পৃষ্ঠাগুলি বিশদ নয়, তাই আমি চলন্ত লোক সম্পর্কে সহজে রূপকগুলি বোঝার সাথে তাদের কী বোঝাতে চাই তা ব্যাখ্যা করব (এটি এর নামে যায় dd):

   bs=BYTES
          read and write up to BYTES bytes at a time

ddকিছু বাছাই করুন (বাক্স, ফুলদানি, বিছানা, চাল ইত্যাদি), যেখানে এটি হওয়া দরকার সেখানে যান এবং এটিকে ফেলে দিন। যতক্ষণ না সে বোঝা বাদ দেয়, ততক্ষণ সে আর কিছু নেয় না। এখন, যখন আপনি তাকে ঠিক বলতে চাই কত বস্তু তিনি ভ্রমণ প্রতি বাছা উচিত, এটা কি bsনা। আপনি যে পরিমাণ ডেটা পড়বেন এবং লিখবেন তা আপনি সেট করেছেন। সমস্ত দরকারী এবং সাধারণ কমান্ডে এটি প্রায় বাধ্যতামূলক।

   count=N
          copy only N input blocks

এটি মুভিংয়ের মোট পরিমাণ নির্ধারণ করে। এই প্রসঙ্গে বক্সগুলি হ'ল ডিস্কের ব্লক । আপনি তাকে 5 টি বাক্স সরিয়ে নিতে বলুন, 5 টিরও বেশি বাক্স থাকলেও তিনি কেবল 5 টি বাক্স সরিয়ে ফেলুন (5 টিরও কম বাক্স থাকলে, এটি যুক্ত করার জন্য বাক্সগুলির পাশাপাশি তিনি একটি ফুলদানি গ্রহণ করবেন)। আপনাকে বলতে যদি ddকরতে countমাত্র 5, এবং এটি কোথাও লিখছি, তিনি দেখেন প্রথম 5 ব্লক এগুলি অনুলিপি করে লিখতে তুমি কোথায় চাইবেন।

   seek=N skip N obs-sized blocks at start of output

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

এখন, আপনি যা করছেন তার উপর নির্ভর করে আপনার উত্স এবং গন্তব্যের ভিত্তিতে বিভিন্ন সংমিশ্রণের প্রয়োজন হবে, সেগুলি ফর্ম্যাট সহ সেগুলি পড়া এবং লিখিত হবে। আমি আপনাকে তাদের আলাদা করার জন্য অনুসন্ধান করার পরামর্শ দিচ্ছি।


"বাক্সগুলি যুক্ত করার জন্য তিনি পাওয়া একটি ফুলদানি নেবেন" এই রূপকটি কীসের পক্ষে দাঁড়ায়?
Ini থেকে

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