فرمان تشریح داده

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از Dd (یونیکس))
پرش به: ناوبری، جستجو

فرمان تشریح داده یا دی‌دی (به انگلیسی: dd) دستوری در یونیکس است که کاربرد معمول آن برای رونوشت گرفتن و تبدیل سطح پایین دادگان خام است. این دستور، رونوشتی از پرونده را تبدیل کرده و برطبق عملگرهای داده‌شده آن را قالب‌بندی می‌کند.

در حالت کلی و با تنظیمات پیش‌فرض و اختصاص ندادن عملگرها، دستور dd داده‌ها را از ورودی استاندارد (مثلاً صفحه‌کلید) گرفته و به خروجی استاندارد می‌دهد.

ساختار دستور[ویرایش]

ساختار کلی این فرمان با بیشتر فرمان‌های یونیکس متفاوت است. این تفاوت از این نظراست که معمولاً در یونیکس شما پارامتر ها یا سوئیچ های دستور را مستقیماً وارد می کنید و برنامه مرتبط با آن دستور، خود متوجه می شود که سوئیچ مربوطه باید چه تغییری را در روند اجرای عادی برنامه اعمال کند. در حالیکه فرمان dd سوئیچ ها و پارامترهایش را به صورت ترکیب "متغیر = مقدار" دریافت می نماید. به صورت پیش فرض، درگاه ورودی این فرمان STDIN و درگاه خروجی آن، STDOUT است، اما توسط سوئیچ های if و of می توان آنها را تغییر داد.

dd if=FILE of=FILE ibs=BYTES obs=BYTES bs=BYTES cbs=BYTES 
skip=BLOCKS seek=BLOCKS count=BLOCKS status=noxfer

توضیحات:

  • if (از input file) و FILE: نام پروندهٔ مبدا.
  • of (از output file) و FILE: نام پروندهٔ مقصد.

Block یا بلاک[ویرایش]

Block یک واحد اندازه گیری بایت هاست، که خوانده، نوشته و یا تبدیل می شود. سوئیچ های مربوطه می توانند اندازه بلاک سایز متفاوتی را برای خواندن/دریافت (ibs) و نوشتن/خروجی (obs) تعیین کنند. تعیین obs نیز هر دوی این دو سوئیچ را بی اثر می سازد. مقدار پیش فرض برای ibs و obs برابر با 512 بایت است ( که یک اجبار از طرف POSIX است و از قدیم برای اندازه بلاک تعریف شده است. اندازه بلاک ها در برخی کارها بسیار حیاتی است، از جمله زمانی که اطلاعات صدمه دیده را از روی هارد دیسک بازیابی می کنیم. تعیین تعداد کوچک بلاک سایز در این کار، باعث می شود بازیابی اکثر بلاک ها با موفقیت و صحیح صورت گیرد. از طرف دیگر، تعیین تعداد کوچک بلاک باعث خواندن - نوشتن بیشتر روی دیسک شده و لذا سرعت کل عملیات پایین تر می آید، بنابراین در زمان کپی کردن اطلاعات بهتر است اندازه بلاک بزرگتر باشد.

گزینه count برای تعیین تعداد بلاک ها استفاده می شود.

مثال[ویرایش]

دستور زیر داده‌های از لوح فشرده را از درایو سی‌دی‌رام گرفته و یک پرونده با نام image و با پسوند iso از آن می‌سازد. در هر بلوک ۲۰۰۰ بایتکیلوبایت) فراخوانی می‌شوند.

user@localhost:~$ dd if=/dev/cdrom of=image.iso bs=2k

منابع[ویرایش]

  • مشارکت‌کنندگان ویکی‌پدیا، «dd (Unix)»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۱۶ ژوئیه ۲۰۱۱).