بررسی دستور dd
دستور dd فایل ها رو در سطح پایین مینویسه (صفر و یک)؛ این دستور کاربرد های مختلفی داره که در ادامه بهش میپردازیم.
با استفاده از dd میتونیم یک فایل رو کپی کنیم، به یک فرمت دیگه تبدیل کنیم و سیستمِفایل ها (پارتیشن های فلش مموری، هارد دیسک و...) رو فرمت کنیم؛ دستور dd در لینوکس مخفف data definition است.
فرم کلی:
dd if=source of=destination
در بالا source مسیر فایل مبدأ است و destination مسیر فایل مقصد است؛ آرگومان if مخفف input file و آرگومان of مخفف output file است.
آرگومان های پرکاربرد
در جدول زیر آرگومان های پرکاربرد در dd با توضیحاتشون آورده شده است.
| dd | |
|---|---|
| آرگومان | توضیحات |
| bs | مقداری که حین انجام عملیات هر سری از فایل مبدأ میخونه و در فایل مقصد می نویسه رو باهاش تعیین میکنیم (مقدار پیشفرض 512 بایت است). |
| status | دارای سه مقدار none، noxfer و progress است که none فقط پیغام های خطا رو نمایش میده، noxfer وضعیت کپی بعد از پایان کار رو نمایش میده و progress روند کپی حین انجام کپی رو نمایش میده. |
| iflag | میتونیم مقادیر ثابتی رو که در dd وجود دارن رو برای if (input file) تعریف کنیم. |
| oflag | میتونیم مقادیر ثابتی رو که در dd وجود دارن برای of (output file) تعریف کنیم. |
در مثال زیر مقدار bs رو برابر 2 مگابایت قرار دادیم.
dd if=source of=destination bs=2M
در مثال زیر میخوایم با استفاده از آرگومان status از روند کپی باخبر بشیم.
dd if=source of=destination status=progress
در مثال زیر میخوایم مقادیر nonblock و sync رو برای iflag و oflag تعریف کنیم.
dd if=source of=destination iflag=nonblock,sync oflag=nonblock,sync
مقادیر ثابت مختلفی برای oflag و iflag وجود دارن که در مثال قبل به دوتا از اونا پرداختیم.
کپی و تغییر فرمت فایل
در مثال زیر میخوایم فایل myVideo.mp4 رو به مسیر /home/username/Videos/movies کپی کنیم.
dd if=~/myVideo.mp4 of=~/Videos/movies/myVideo.mp4 bs=4096 status=progress
برای تغییر فرمت یک فایل با دستور dd کافیه پسوند فایل رو در مسیر مقصد تغییر بدیم.
فرض کنید یک فایل ویدیویی با پسوند mp4 در مسیر /home/username/myVideo.mp4 داریم و فرمتشو به mkv تغییر بدیم.
dd if=~/myVideo.mp4 of=~/myVideo.mkv bs=4096 status=progress iflag=sync,nonblock oflag=sync,nonblock
فرمت سیستمِفایل ها
برای فرمت سیستمِفایل ها (پارتیشن های فلش مموری، هارد دیسک و...) با استفاده از dd در لینوکس یک مسیر پیش فرض /dev/zero در لینوکس وجود داره که به عنوان مقدار آرگومان if قرار میدیم و مسیر پارتیشن مورد نظر رو به عنوان مقدار of قرار میدیم.
dd if=/dev/zero of=partitionName bs=2M status=progress iflag=sync oflag=sync
خلاصه
- دستور dd فایل ها رو در سطح پایین مینویسه.
- با استفاده از دستور dd میتونیم یک فایل رو کپی کنیم یا فرمت فایل رو تغییر بدیم.
- با dd میتونیم سیستمِفایل ها رو فرمت کنیم.
بازخورد و دیدگاه ها
اولین نفری باشید که در این صفحه نظر میدهید