کپی و تغییر فرمت فایل + فرمت سیستمِ‌فایل ها با dd در لینوکس

کپی و تغییر فرمت فایل + فرمت سیستمِ‌فایل ها با dd در لینوکس

بررسی دستور 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 میتونیم سیستمِ‌فایل ها رو فرمت کنیم.

بازخورد و دیدگاه‌ ها

اولین نفری باشید که در این صفحه نظر می‌دهید

notifications برای اطلاع از جدیدترین مطالب و پست های مرتبط، عضو کانال تلگرام ما بشید.

arrow_drop_up
کپی شد!