dd (data definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Data Definition) из языка JCL.
 Поскольку в UNIX многие объекты (жёсткие/гибкие диски, COM/LPT-порты, оперативная память компьютера, память с кодом/данными каждого процесса) представлены в виде специальных файлов, спектр применения утилиты dd гораздо шире, чем кажется на первый взгляд. Регулярно возникает необходимость не просто скопировать файл или несколько файлов (для чего предназначена утилита cp), а скопировать первые n байт файла, пропустить m байт от начала, прочитать файл с дефектного носителя, транслировать содержимое файла в ASCII, «развернуть» порядок байтов в файле (Little-Endian vs. Big-Endian), просто скопировать очень большой файл или всё вместе взятое. Для этой цели и служит dd.
 Кроме всего прочего, данная утилита позволяет скопировать регионы из файлов «сырых» устройств, например, сделать резервную копию загрузочного сектора жёсткого диска, или прочитать фиксированные блоки данных из специальных файлов, таких, как /dev/zero или /dev/random.
 Название утилиты dd иногда в шутку расшифровывают, как «disk destroyer», «data destroyer», «delete data» или «добей диск», так как утилита позволяет производить низкоуровневые операции на жёстких дисках — при малейшей ошибке (такой, как реверс параметров if и of) можно потерять часть данных на диске (или даже все данные). Есть и более «уважительное» прозвище — «disk duplicator», потому что на практике основное её применение — это копии, образы и бэкапы разделов.
 При написании статьи были использованы материалы man dd, описывающие версию dd от GNU. Версии dd на других операционных системах могут отличаться.
 dd [--help] [--version] [status] [if=файл] [of=файл] [ibs=байты] [obs=байты] [bs=байты] [cbs=байты] [skip=блоки] [seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]
 Создать образ CD/DVD, используя большой размер блока. Игнорировать ошибки:
 Записать ISO-образ «image.iso» на устройство sdb вместе с его загрузочным сектором и форматированием раздела в файловую систему образа (как правило, ISO 9660 или UDF):
 Скопировать файл foo в файл bar:
 Скопировать файл foo в файл bar, пропустив первые 10 КБ из файла foo:
 Порезать 10-мегабайтный файл foo на 2 по 5 МБ:
 Склеить четыре 100-мегабайтных файла в один:
 а можно и так:
 или же (для сбора файла из большого количества кусков):
 Примеры выше показывают возможности dd; на практике, обычно, используется cat:
 Вывести на экран (в /dev/stdout) первые 256 байт файла foo:
 или:
 Предыдущая команда годится только для просмотра текстового файла. Содержимое бинарного файла рекомендуется смотреть так:
 В большинстве случаев следует быть внимательным, чтобы файл назначения не оказался на том же самом диске, с которого снимается образ (и, собственно, желательно его вообще размонтировать, поскольку любые случайные изменения его файловой системы могут нарушить целостность образа).
 Скопировать один раздел жёсткого диска на другой жёсткий диск, игнорируя ошибки ввода-вывода:
 Сделать копию главной загрузочной записи (MBR) первого жёсткого диска:
 Заполнить всё свободное место в текущем разделе нулями:
 Создать сжатый образ первого жёсткого диска со всеми разделами (рекомендуется сначала заполнить свободное место нулями для лучшего сжатия):
 Cоздать разбитый на отрезки по 2Gb образ первого жёсткого диска со всеми разделами (со сжатием и без):
 Просмотреть содержимое главной загрузочной записи (MBR) первого жёсткого диска:
 Копировать всё, кроме метки, с диска на магнитную ленту:
 Копировать всё, не перезаписывая метку, с магнитной ленты на диск:
 Уничтожить содержимое устройства /dev/sdg, заполнив его «нулями» из /dev/zero:
 Узнать статус выполнения операции:
 В некоторых случаях статус выполнения просматривается командой:
 В последних версиях статус выполнения можно выводить в консоль, задав команду dd с параметром status=progress Программы с открытым исходным кодом для восстановления включают dd_rescue и dd_rhelp, которые работают вместе, savehd7 и GNU ddrescue.
 Antonio Diaz Diaz (разработчик GNU ddrescue) сравнивает варианты dd для задач восстановления:
 Стандартная утилита dd осуществляет линейное чтение диска, и это может занять много времени или даже сжечь накопитель без восстановления чего-либо, если ошибки расположены в начале жёсткого диска.
 dd_rescue делает то же самое, что и dd, только более эффективно.
 dd_rhelp — это сложный shell-скрипт, который запускает dd_rescue много раз, стараясь стратегически копировать накопитель, но это очень неэффективно.