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

作用

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

语法

dd [OPERAND]...
dd OPTION

参数

  • 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  显示版本信息

示例

(1)整盘数据备份与恢复

# 将本地的 /dev/hdx 整盘备份到 /dev/hdy
dd if=/dev/hdx of=/dev/hdy

# 将 /dev/hdx 全盘数据备份到指定路径的 image 文件
dd if=/dev/hdx of=/path/to/image

# 备份 /dev/hdx 全盘数据,并利用 gzip 工具进行压缩,保存到指定路径
dd if=/dev/hdx | gzip >/path/to/image.gz

# 将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/hdx

# 将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/hdx

(2)将 demo 文件使用 gzip 进行压缩,输出到 demo.tar.gz 文件,如下:

hxstrive@localhost:~$ dd if=demo | gzip > ./demo.tar.gz
0+1 records in
0+1 records out
12 bytes copied, 6.3299e-05 s, 190 kB/s
hxstrive@localhost:~$ ll demo.tar.gz
-rw-rw-r-- 1 hxstrive hxstrive 32  7月 30 16:15 demo.tar.gz

(3)在 Linux 下制作启动盘,可使用如下命令:

dd if=boot.img of=/dev/fd0 bs=1440k

(4)将 demo 文件中的所有英文字母转换为大写,然后输出到 demo_out 文件,命令如下:

hxstrive@localhost:~$ cat demo
hello Linux
hxstrive@localhost:~$ dd if=demo of=demo_out conv=ucase
0+1 records in
0+1 records out
12 bytes copied, 0.000333473 s, 36.0 kB/s
hxstrive@localhost:~$ cat demo_out
HELLO LINUX

更多关于命令详细参考手册,请使用 man 命令或者 --help 参数获取帮助信息

关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号