ИМЯ¶
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=bytes
- Читает по
bytes байт за
раз. По
умолчанию 512.
- obs=bytes
- Пишет по
bytes байт за
раз. По
умолчанию 512.
- bs=bytes
- Читает и
пишет по bytes
байт за раз.
Данная
опция
перекрывает
опции ibs и obs.
(Кроме того,
установка bs
не
эквивалентна
установке
обеих опций
ibs и obs в то же
значение, по
крайней
мере, когда
не задано
преобразований
отличных от
sync, noerror и notrunc, так
как она
оговаривает,
что каждый
входной
блок будет
копироваться
на выход как
отдельный
блок без
объединения
коротких
блоков).
- cbs=байт
- Задает
размер
блока для
преобразований
типа block и unblock.
- skip=blocks
- Пропускает
blocks блоков
длины ibs
байт во
входном
файле перед
началом
копирования.
- seek=blocks
- Пропускает
в выходном
файле blocks
блоков
длины obs
байт перед
началом
копирования.
- count=blocks
- Копирует
лишь blocks
блоков
длины 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 и #4]
- 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 из
пакета fileutils-4.0;
другие
версии могут
иметь
небольшие
отличия.
Исправления
и дополнения
присылайте
по адресу aeb@cwi.nl.
Сообщения об
ошибках в
этой
программе
присылайте
по адресу
fileutils-bugs@gnu.ai.mit.edu.
ПЕРЕВОД¶
Перевёл с
английского
Виктор
Вислобоков
<corochoone@perm.ru> 2003