Dd (UNIX)

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

dd — программа Unix, предназначенная для копирования и конвертации файлов.

Содержание

Введение

Поскольку в Unix очень многие объекты являются файлами, спектр применения dd гораздо более широк, чем кажется на первый взгляд. Регулярно возникает необходимость не просто скопировать файл или несколько файлов (с чем прекрасно справляется cp), но скопировать первые n байт файла, пропустить m байт от начала, прочитать файл с дефектного носителя, транслировать содержимое файла в ASCII, «развернуть» порядок байт в файле (Little-Endian vs. Big-Endian), просто скопировать очень большой файл или все вместе взятое. Для этой цели и служит dd.

Некоторые параметры

Базовые параметры

  • if=файл — читает данные из файла вместо стандартного ввода.
  • of=файл — пишет данные в файл вместо стандартного вывода.
  • bs=n — размер блока
  • ibs=nn и obs=nn — задаёт, сколько байтов нужно считывать или записывать за раз
  • count=n — сколько блоков скопировать
  • skip=n — сколько блоков от начала файла пропустить перед началом копирования
  • conv=фильтр,фильтр — применить фильтры конвертациии.


  • ascii — сконвертировать в ASCII из EBCDIC
  • ebcdic — … и наоборот
  • block — выравнивание блоков
  • lcase — преобразовать к нижнему регистру
  • ucase — преобразовать к верхнему регистру
  • swap — менять местами пары байт
  • noerror — игнорировать ошибки ввода-вывода.

Примеры использования

Скопировать файл 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


Вывести на экран (в /dev/stdout) первые 256 байт файла foo:

dd if=foo of=/dev/stdout bs=128 count=2

или:

dd if=foo bs=128 count=2

Предыдущая команда годиться только для просмотра текстового файла.
Содержимое бинарного файла рекомендуется смотреть так:

dd if=foo bs=1 count=10 2>/dev/null|hexdump 


Сделать image компакт-диска/DVD, используя большой размер блока. Игнорировать ошибки:

dd if=/dev/cdrom of=backup.iso bs=65535 conv=noerror

Для создания образа компакт-диска/DVD, лучше использовать команду readcd из стандартного пакета cdrecord:

readcd dev=/dev/cdrom f=backup.iso


Уничтожить содержимое устройства /dev/sdg, заполнив его «нулями» из /dev/zero:

dd if=/dev/zero of=/dev/sdg bs=65535


Сделать копию главной загрузочной записи первого жёсткого диска:

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 seek=1 count=0 && dd bs=512k) <$tape >$disk

См. также

При написании статьи были использованы материалы man dd, описывающие версию dd от GNU. Версии dd на других операционных системах могут отличаться от вышеописанной.


Источник — «http://ru.wikipedia.org/wiki/Dd»

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net