dd — программа UNIX, предназначенная как для копирования, так и для конвертации файлов.
dd [–help] [–version] [if=файл] [of=файл] [ibs=байты] [obs=байты] [bs=байты] [cbs=байты] [skip=блоки] [seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]
if=файл — читает данные из файла вместо стандартного ввода.
of=файл — пишет данные в файл вместо стандартного вывода.
bs=n — размер блока.
ibs=nn и obs=nn — задаёт, сколько байтов нужно считывать или записывать за раз.
count=n — сколько блоков скопировать.
seek=n — сколько блоков пропустить от начала в результирующем файле.
skip=n — сколько блоков от начала файла пропустить перед началом копирования.
conv=фильтр,фильтр — применить фильтры конвертации.
ascii — сконвертировать в ASCII из EBCDIC…
ebcdic — …и наоборот.
block — выравнивание блоков.
lcase — преобразовать к нижнему регистру.
ucase — преобразовать к верхнему регистру.
swab — менять местами пары байт.
noerror — игнорировать ошибки ввода-вывода
- Создать образ CD/DVD, используя большой размер блока. Игнорировать ошибки:
dd if=/dev/cdrom of=backup.iso bs=65535 conv=noerror
- Записать ISO-образ «image.iso» на раздел sdb1 вместе с его загрузочным сектором и форматированием раздела в файловую систему образа (как правило, ISO 9660 или UDF):
dd if=image.iso of=/dev/sdb1
- Скопировать файл foo в файл bar:
dd if=foo of=bar
- Скопировать файл foo в файл bar, пропустив первые 10 КБ из файла foo:
dd if=foo of=bar bs=1k skip=10
- Порезать 10-мегабайтный файл foo на 2 по 5 МБ:
dd if=foo of=bar.0 bs=1M count=5 dd if=foo of=bar.1 bs=1M skip=5
- Склеить пять 100-мегабайтных файлов в один:
dd if=SMILE.001 of=SMILE bs=1M seek=0 dd if=SMILE.002 of=SMILE bs=1M seek=100 dd if=SMILE.003 of=SMILE bs=1M seek=200 dd if=SMILE.004 of=SMILE bs=1M seek=300
а можно и так:
dd if=SMILE.001 > SMILE dd if=SMILE.002 >> SMILE dd if=SMILE.003 >> SMILE dd if=SMILE.004 >> SMILE
или же (для сбора файла из большого количества кусков):
for i in $(seq 1 4); do dd if=SMILE.00$i >> SMILE done
- Вывести на экран (в /dev/stdout) первые 256 байт файла foo:
dd if=foo of=/dev/stdout bs=128 count=2
- Скопировать один раздел жёсткого диска на другой жёсткий диск, игнорируя ошибки ввода-вывода:
dd if=/dev/sda1 of=/dev/sdb2 bs=4096 conv=noerror
- Сделать копию главной загрузочной записи (MBR) первого жёсткого диска:
dd if=/dev/hda of=bootloader.mbr bs=512 count=1
- Копировать всё, кроме метки, с диска на магнитную ленту:
(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
- Копировать всё, кроме метки, с диска на магнитную ленту:
(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
- Уничтожить содержимое устройства /dev/sdg, заполнив его «нулями» из /dev/zero:
dd if=/dev/zero of=/dev/sdg bs=65535
- Узнать статус выполнения операции:
killall -USR1 dd