Команда dd в Linux
Команда dd в Linux используется для чтения, преобразования и вывода данных.
dd может читать данные из стандартного ввода или файла, преобразовывать данные в соответствии с заданным форматом, а затем выводить в файл, устройство или стандартный вывод.
Описание параметра:
- if=file name: имя входного файла, по умолчанию стандартный ввод. То есть указать исходный файл.
- of=file name: имя выходного файла, по умолчанию стандартный вывод. То есть указать целевой файл.
- ibs=bytes: читать по bytes байт за раз, т.е. указать размер блока в bytes байт.
obs=bytes: выводить по bytes байт за раз, т.е. указать размер блока в bytes байт.
bs=bytes: одновременно установить размер блока ввода/вывода в bytes байт. - cbs=bytes: преобразовывать по bytes байт за раз, т.е. указать размер буфера преобразования.
- skip=blocks: пропустить blocks блоков с начала входного файла перед началом копирования.
- seek=blocks: пропустить blocks блоков с начала выходного файла перед началом копирования.
- count=blocks: скопировать только blocks блоков, при этом размер блока равен количеству байт, указанному в ibs.
- conv=<keyword>, ключевые слова могут быть следующих 11 типов:
- conversion: преобразовать файл с указанными параметрами.
- ascii: преобразовать EBCDIC в ASCII
- ebcdic: преобразовать ASCII в EBCDIC
- ibm: преобразовать ASCII в альтернативный EBCDIC
- block: преобразовать каждую строку к длине cbs, дополняя недостающую часть пробелами
- unblock: сделать длину каждой строки равной cbs, дополняя недостающую часть пробелами
- lcase: преобразовать символы верхнего регистра в символы нижнего регистра
- ucase: преобразовать символы нижнего регистра в символы верхнего регистра
- swap: поменять местами каждую пару входных байтов
- noerror: не останавливаться при возникновении ошибки
- notrunc: не усекать выходной файл
- sync: дополнить каждый входной блок до ibs байтов, заполняя недостающую часть символами null (NUL).
- --help: отобразить справочную информацию
- --version: отобразить информацию о версии
Примеры
Чтобы создать загрузочный диск в Linux, можно использовать следующую команду:
dd if=boot.img of=/dev/fd0 bs=1440k
Преобразуйте все английские буквы в файле testfile в верхний регистр, затем запишите результат в файл testfile_1; для этого используйте следующую команду в командной строке:
dd if=testfile_2 of=testfile_1 conv=ucase
Содержимое файла testfile_2:
$ cat testfile_2 #testfile_2的内容 HELLO LINUX! Linux is a free unix-type opterating system. This is a linux testfile! Linux test
После завершения преобразования содержимое файла testfile_1 выглядит следующим образом:
$ dd if=testfile_2 of=testfile_1 conv=ucase #使用dd 命令,大小写转换记录了0+1 的读入 记录了0+1 的写出 95字节(95 B)已复制,0.000131446 秒,723 KB/s cmd@hdd-desktop:~$ cat testfile_1 #查看转换后的testfile_1文件内容 HELLO LINUX! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. THIS IS A LINUX TESTFILE! LINUX TEST #testfile_2中的所有字符都变成了大写字母
Считать строку со стандартного устройства ввода, преобразовать строку в верхний регистр и затем вывести её на стандартное устройство вывода. Используемая команда:
dd conv=ucase
После ввода вышеуказанной команды нажмите клавишу Enter, введите строку, снова нажмите клавишу Enter и нажмите сочетание клавиш Ctrl+D для выхода. Появится следующий результат:
$ dd conv=ucase Hello Linux! #输入字符串后按回车键 HELLO LINUX! #按组合键Ctrl+D退出,转换成大写结果 记录了0+1 的读入 记录了0+1 的写出 13字节(13 B)已复制,12.1558 秒,0.0 KB/sДругие расширения
Энциклопедия команд Linux