Документация по LinuxLinuxDoc.Ru 🔍

dd - преобразовывает и копирует файл

НАЗВАНИЕ
dd - преобразовывает и копирует файл

СИНТАКСИС
dd [--help] [--version] [if=файл] [of=файл] [ibs=байты]
[obs=байты] [bs=байты] [cbs=байты] [skip=блоки]
[seek=блоки] [count=блоки] [conv={ascii, ebcdic, ibm,
block, unblock, lcase, ucase, swab, noerror, notrunc,
sync}]

ОПИСАНИЕ
dd копирует файл по умолчанию (со стандартного ввода на
стандартный вывод), используя заданные размеры блоков для
ввода и вывода и в то же время, если необходимо, выполняет
его преобразование.

dd читает по одному блоку, используя заданный размер
входного блока (по умолчанию - 512 байт). Если задана
опция bs=байты и не требуется преобразований, отличных от
sync, noerror или notrunc, то dd записывает прочитанные
данные (которых может быть меньше, чем было запрошено) в
отдельный выходной блок. Выходной блок имеет точно ту же
длину, что и прочитанный блок, за исключением случая,
когда задано преобразование sync, при котором данные
дополняются до полного блока символами NUL (или пробелами
(см. ниже).

В противном случае ввод читается по одному блоку,
обрабатывается, а результирующий вывод накапливается и
записывается поблочно (размер выходного блока задан).
Последний выходной блок может быть короче, чем предыдущие.

За числовыми значениями опций (байтами и блоками) могут
следовать коэффициенты `k'=1024, `b'=512, `w'=2, `c'=1
(коэффициенты `w' и `c' являются расширениями GNU; `w'
никогда не рекомендуется использовать: он означает 2 в
System V и 4 в 4.2BSD). Два или более числовых выражения
могут быть умножены друг на друга с помощью символа `x'
между ними. Версия GNU fileutils-4.0 при задании размеров
блоков (в bs=, cbs=, ibs=, obs=) позволяет использовать
следующие коэффициенты: M=1048576, G=1073741824 (и так
далее), - для T, P, E, Z, Y. Суффикс `D' делает значения
десятичными: kD=1000, MD=1000000, GD=1000000000 (и так
далее). (Заметим, что для ls, df, du размер M и т.п.
определяется переменными окружения, но для dd он
фиксирован).

ОПЦИИ
if=файл
Читает данные из параметра файл вместо стандартного
ввода.

of=файл
Пишет данные в файл вместо стандартного вывода.
Если только не задан conv=notrunc, dd уменьшает
файл до нулевого размера (или размера, заданного в
seek=).

ibs=N Читает по N байтов за один раз. По умолчанию N=512.

obs=N Записывает по N байтов за один раз. По умолчанию
N=512.

bs=N Читает и записывает по N байт за раз. Данная опция
перекрывает опции ibs и obs. (Кроме того,
установка bs не является эквивалентной установке
того же значения обеих опций ibs и obs (по крайней
мере тогда, когда не заданы преобразования,
отличные от sync, noerror и notrunc), так как она
означает, что каждый входной блок будет
копироваться на выход как отдельный блок без
объединения коротких блоков).

cbs=байт
Задает размер блока для преобразований типа block и
unblock.

skip=N Пропускает N блоков длиной ibs байтов во входном
файле перед началом копирования.

seek=N Пропускает в выходном файле N блоков длиной obs
байтов перед началом копирования.

count=N
Копирует N блоков длиной ibs байтов из входного
файла, а не весь входной файл, как обычно.

conv=ПРЕОБРАЗОВАНИЕ[,ПРЕОБРАЗОВАНИЕ]...
Преобразует файл, как задано аргументом (-ами)
ПРЕОБРАЗОВАНИЕ. (Вокруг запятых не должно быть
пробелов).

Типы преобразований:


ascii Преобразование EBCDIC в ASCII.

ebcdic Преобразование ASCII в EBCDIC.

ibm Преобразование ASCII в альтернативный
EBCDIC.

block Для каждой строки во входном файле выводит
cbs байтов в выходной файл, заменяя символ
новой строки на пробел и дополняя строку
пробелами при необходимости.

unblock
Заменяет заключительные пробелы в каждом
входном блоке размера cbs байтов на символ
новой строки.

lcase Изменяет заглавные буквы на строчные.

ucase Изменяет строчные буквы на заглавные.

swab Меняет местами каждую пару входных байтов.
Если последний байт имеет нечетный
порядковый номер, то он просто копируется
(так как менять местами нечего). [POSIX
1003.2b, PASC interpretations 1003.2 #3 и

noerror
Продолжает операцию после ошибок чтения.

notrunc
Не укорачивает выходной файл.

sync Дополняет каждый входной блок нулевыми
байтами, пока он не приобретет размер ibs.

СТАНДАРТНЫЕ ОПЦИИ GNU
--help Выводит подсказку на стандартный вывод и завершает
свою работу.

--version
Выводит информацию о версии программы на
стандартный вывод и завершает свою работу.

-- Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ
Переменные LANG, LC_ALL, LC_CTYPE и LC_MESSAGES
используются обычным образом.

СООТВЕТСТВИЕ
POSIX 1003.2

ПРИМЕР

Часто ленточное устройство не может работать с блоками
произвольного размера и dd будет выдавать ошибку
ввода/вывода для последнего фрагмента данных, который не
заполняет блок полностью. Для того, чтобы на ленту
записались все данные, используйте `dd if=myfile
of=/dev/mytape conv=sync'. Разумеется, если прочитать
опять этот файл с ленты, то он станет немного больше,
потому что будет дополнен нулями.

ОШИБКИ
Команда типа `dd if=myfile of=/dev/fd0 bs=1k seek=172'
выполняется с ошибкой на некоторых системах, потому что dd
пытается обрезать выходной файл, то обрезание блочного
устройства невозможно. В этом случае добавьте опцию
`conv=notrunc'.

ЗАМЕЧАНИЯ

Данная страница описывает версию dd из пакета fileu-
tils-4.0; другие версии могут немного отличаться от нее.
Исправления и дополнения присылайте по адресу: aeb@cwi.nl.
Отчеты об ошибках в этой программе присылайте по адресу:
fileutils-bugs@gnu.ai.mit.edu.
Читать новости Linux в Telegram
Linux - dd - преобразовывает и копирует файл
Мы в соцсетях ✉