Příkaz dd zkopíruje a převede soubory, aby je bylo možné přenést z jednoho typu média na jiný. Příkaz dd má různé operandy neboli akce, které je třeba provést.
Operand | Použito na |
---|---|
if={název souboru} | Uveďte soubor, ze kterého se budou číst data. |
of={název souboru} | Uveďte soubor, do kterého budou data zapsána. |
bs={bytes} | Uveďte celkovou velikost bloku pro čtení a zápis v bajtech. Bajty lze také naformátovat lidsky přívětivějším způsobem, například 50M pro určení 50 megabajtů a 10G pro určení 10 gigabajtů. |
count={blocks} | Uveďte počet bloků, které se mají zapsat do výstupního souboru ze vstupního souboru. |
status={level} | Určete úroveň informací, které se mají vytisknout se standardní chybou – žádná chcete-li potlačit vše kromě chybových zpráv, noxfer pro potlačení statistiky celkových přenosů, pokrok pro pravidelné zobrazování statistik převodů. |
Syntaxe
Syntaxe příkazu dd je:
# dd [options] [operands]
Použití dd pro zálohování
Pomocí dd můžete provést úplnou zálohu oddílu úložiště. Následující příklad zkopíruje data z /dev/sda1 do /dev/sdb2:
# dd if=/dev/sda of=/dev/sdb
Pomocí dd můžete také vytvořit obraz disku a poté s ním naklonovat druhý disk:
# dd if=/dev/sda of=drive_image.iso # dd if=drive_image.iso of=/dev/sdb
Příklady příkazů dd
1. Kopírování souboru:
# dd if=old.txt of=old.txt
2. Čtení a zápis určených bajtů souboru najednou:
# dd bs=1024 if=old.txt of=old.txt
3. Chcete-li převést soubor do určeného formátu:
# dd bs=1024 if=old.txt of=new.txt conv=ascii (from EBCDIC to ASCII) # dd bs=1024 if=old.txt of=new.txt conv=ebcdic (from ASCII to EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=ibm (from ASCII to alternate EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=block (pad oldline-terminated records with spaces to cbs-size) # dd bs=1024 if=old.txt of=new.txt conv=unblock (replace trailing spaces in cbs-size records with oldline) # dd bs=1024 if=old.txt of=new.txt conv=lcase (change upper case to lower case) # dd bs=1024 if=old.txt of=new.txt conv=excl (fail if the output old already exists) # dd bs=1024 if=old.txt of=new.txt conv=notrunc (do not truncate the output old) # dd bs=1024 if=old.txt of=new.txt conv=ucase (change lower case to upper case) # dd bs=1024 if=old.txt of=new.txt conv=swab (swap every pair of input bytes) # dd bs=1024 if=old.txt of=new.txt conv=noerror (continue after read errors) # dd bs=1024 if=old.txt of=new.txt conv=sync (pad every input block with NULs to ibs-size) # dd bs=1024 if=old.txt of=new.txt conv=fdatasync (physically write output old data before finishing) # dd bs=1024 if=old.txt of=new.txt conv=fsync (likewise, but also write metadata)
4. Chcete-li zkopírovat pouze určený počet bloků:
# dd count=1024 if=old.txt of=new.txt
5. Chcete-li zkopírovat soubor s určením příznaku:
# dd if=old.txt of=new.txt oflag=append # dd if=old.txt iflag=directory of=new.txt oflag=directory # dd if=old.txt iflag=noatime of=new.txt oflag=append
6. Postup převodu zadaných bajtů najednou:
# dd cbs=1024 if=old.txt of=new.txt
7. Čtení zadaného počtu bajtů najednou:
# dd ibs=1024 if=old.txt of=new.txt
8. Chcete-li zapsat určený počet bajtů najednou:
# dd obs=1024 if=old.txt of=new.txt
9. Chcete-li přeskočit zadaný počet bloků na začátku o/p:
# dd seek=1024 if=old.txt of=new.txt
10. Chcete-li přeskočit zadaný počet bloků na začátku i/p:
# dd skip=1024 if=old.txt of=new.txt
11. Chcete-li potlačit statistiku přenosu:
# dd status=noxfer if=old.txt of=new.txt
12. Chcete-li vymazat tabulku oddílů pro zařízení:
# dd if=/dev/zero of=/dev/sda4 bs=512 count=1