dd 命令

dd 命令用于读取、转换并输出数据。

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

参数说明:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。
  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  • 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=<关键字>,关键字可以有以下 11 种:
    • conversion:用指定的参数转换文件。
    • ascii:转换 ebcdic 为 ascii
    • ebcdic:转换 ascii 为 ebcdic
    • ibm:转换 ascii 为 alternate ebcdic
    • block:把每一行转换为长度为 cbs,不足部分用空格填充
    • unblock:使每一行的长度都为 cbs,不足部分用空格填充
    • lcase:把大写字符转换为小写字符
    • ucase:把小写字符转换为大写字符
    • swap:交换输入的每对字节
    • noerror:出错时不停止
    • notrunc:不截短输出文件
    • sync:将每个输入块填充到 ibs 个字节,不足部分用空(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


file_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


输入以上命令后按回车键,输入字符串,再按回车键,按组合键 Ctrl+D 退出,出现以下结果:

$ dd conv=ucase

Hello Linux! #输入字符串后按回车键

HELLO LINUX! #按组合键Ctrl+D退出,转换成大写结果

记录了0+1 的读入

记录了0+1 的写出

13字节(13 B)已复制,12.1558 秒,0.0 KB/s





返回软件开发辅助网 | 常用命令列表

shell语法手册