dd (dataset definition) — программа UNIX, предназначенная как для копирования, так и для конвертации файлов. Название унаследовано от оператора DD (Dataset Definition) из языка JCL.
Пример использования:
sudo dd if=image.iso of=/dev/sdb
Данная команда запишет ISO-образ «image.iso» на устройство sdb вместе с его загрузочным сектором и форматированием раздела в файловую систему образа.
sudo dd if=/home/имя пользователя/ubuntu-13.10-desktop-amd64.iso of=/dev/sdb
Другой пример:
sudo dd if=dd1 of=dd2
Данная команда скопирует данные в файле dd1 в файл dd2
sudo dd if=/home/имя пользователя/dd1 of=/home/имя пользователя/dd2
Использование: dd [ОПЕРАНД]…
или: dd ПАРАМЕТР
Копирует файл, преобразует и форматирует в зависимости от операндов.
bs=ЧИСЛО читать и писать до ЧИСЛА байт за раз
cbs=ЧИСЛО преобразовывать заданное ЧИСЛО байт за раз
conv=СПИСОК преобразовывать файл в соответствии со СПИСКОМ символов, элементы перечисляются через запятую
count=ЧИСЛО копировать только заданное ЧИСЛО входных блоков
ibs=ЧИСЛО считывать до ЧИСЛА байт за раз (по умолчанию 512)
if=ФАЙЛ читать ФАЙЛ, а не стандартный ввод
iflag=ФЛАГИ читать в соответствии со списком символов, элементы перечисляются через запятую
obs=ЧИСЛО записывать заданное ЧИСЛО байт за раз (по умолчанию 512)
of=ФАЙЛ записывать в ФАЙЛ, а не на стандартный вывод
oflag=ФЛАГИ записывать в соответствии со списком символов,
элементы перечисляются через запятую
seek=ЧИСЛО пропустить перед началом вывода заданное ЧИСЛО блоков размером obs
skip=ЧИСЛО пропустить перед началом ввода заданное ЧИСЛО блоков размером ibs
status=ИНФО заданную ИНФОрмацию не выводить в stderr;
«noxfer» — не выводить статистику передачи
«none» — не выводить ничего
После ЧИСЛА блоков и байт может стоять один из умножающий суффиксов:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024 и так далее для T, P, E, Z, Y.
Каждый символ СПИСКА может быть:
ascii из EBCDIC в ASCII
ebcdic из ASCII в EBCDIC
ibm из ASCII в альтернативную EBCDIC
block дополнять записи, заканчивающиеся переводом строки, пробелами до размера cbs
unblock заменять завершающие пробелы в записях размера cbs на перевод строки
lcase изменять регистр с верхнего на нижний
ucase изменять регистр с нижнего на верхний
sparse попытаться переместиться, а не записывать в вывод NUL входных блоков
swab переставить местами каждую пару входных байт
sync дополнять каждый входной блок NUL-ми до размера ibs; при использовании с block или unblock, дополнять пробелам, а не NUL
excl завершать с ошибкой, если выходной файл уже существует
nocreat не создавать выходной файл
notrunc не обрезать выходной файл
noerror продолжать после ошибок чтения
fdatasync физически записать выходной файл перед завершением
fsync аналогично, но записать также метаданные
Символ ФЛАГ может быть таким:
append режим добавления (имеет смысл для вывода; рекомендуется conv=notrunc)
direct использовать прямой ввод/вывод для данных
directory выдавать ошибку, если это не каталог
dsync использовать синхронизированный ввод/вывод для данных
sync то же, но так же и для метаданных
fullblock накапливать полные блоки входных данных (только iflag)
nonblock использовать неблокирующий ввод/вывод
noatime не обновлять время последнего доступа
nocache отвергать кэшированные данные
noctty не назначать управляющий терминал из файла
nofollow не следовать по символьным ссылкам
count_bytes считать «count=N» как счётчик байт (только с iflag)
skip_bytes считать «skip=N» как счётчик байт (только с iflag)
seek_bytes считать «seek=N» как счётчик байт (только с oflag)
Если послать работающему процессу «dd» сигнал USR1, то в
стандартный поток ошибок будет выдана статистика ввода/вывода
и копирование продолжится.
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 записей получено
18335302+0 записей отправлено
9387674624 байта (9.4 GB) скопировано, 34.6279 секунды, 271 MB/s
Ключи:
—help показать эту справку и выйти
—version показать информацию о версии и выйти