dd 命令

分类:常用对照表
dd 命令用于复制文件并对原文件的内容进行转换和格式化处理。dd 命令功能很强大的,对于一些比较底层的问题,使用 dd 命令往往可以得到出人意料的效果。其中一个场景是使用 dd 命令来备份裸设备,但是不推荐这么做。如果需要备份 oracle 裸设备,可以使用 rman 命令备份,或使用第三方软件备份。使用 dd 的话,管理起来不太方便。

dd 命令说明及用法

返回常用 Linux 命令

说明

dd 命令用于复制文件并对原文件的内容进行转换和格式化处理。dd 命令功能很强大的,对于一些比较底层的问题,使用 dd 命令往往可以得到出人意料的效果。其中一个场景是使用 dd 命令来备份裸设备,但是不推荐这么做。如果需要备份 oracle 裸设备,可以使用 rman 命令备份,或使用第三方软件备份。使用 dd 的话,管理起来不太方便。

建议在有需要的时候使用 dd 对物理磁盘操作,如果是文件系统的话,建议使用 tarbackup 或者 cpio 等命令会更加方便。另外,使用 dd 对磁盘操作时,最好使用块设备文件。

语法

dd [选项]

选项

bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数
cbs=<字节数>:转换时,每次只转换指定的字节数
conv=<关键字>:指定文件转换的方式
count=<区块数>:仅读取指定的区块数
files=<n>:在终止前,复制指定数量的文件
ibs=<字节数>:每次读取的字节数
if=<文件>:从文件中读取输入数据,来代替标准输入
obs=<字节数>:每次输出的字节数
of=<文件>:输出到文件
seek=<区块数>:一开始输出时,跳过指定的区块数
skip=<区块数>:一开始读取时,跳过指定的区块数
--help:帮助
--version:显示版本信息

实例

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

[root@localhost text]# du -sh sun.txt
1.1M    sun.txt

上述命令创建了一个 1M 大小的文件 sun.txt,其中参数的含义是:

  • if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入
  • of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出
  • bs 代表字节为单位的块大小
  • count 代表被复制的块数
  • /dev/zero 是一个字符设备,会不断返回 0 值字节(\0

下表列出了块大小(bs 选项)可以使用的计量单位:

单元大小单位代码
字节(1B)c
字节(2B)w
块(512B)b
千字节(1024B)k
兆字节(1024KB)M
吉字节(1024MB)G

从上面命令的输出结果也可以看出 dd 命令的操作速度:

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

生成随机字符串

我们甚至可以使用 /dev/urandom 设备配合 dd 命令 来获取随机字符串,如下所示:

[root@localhost ~]# dd if=/dev/urandom bs=1 count=15|base64 -w 0
15+0 records in
15+0 records out
15 bytes (15 B) copied, 0.000111993 s, 133 kB/s
sWbeDlkKxcCmL5At6NgI

提示:本站提供了在线的随机字符串生成工具:

上面几款工具都提供了生成随机字符串的功能,能够方便地生成需要的随机字符串,可根据需要使用不同的工具。