Linux dd 命令

dd 命令用于复制文件并对原文件的内容进行转换和格式化处理。

语法格式

dd [OPTIONS]...

选项说明

选项 含义
if=文件名 指定源文件
of=文件名 指定目的文件
ibs=bytes 指定读入块大小为 bytes 字节
obs=bytes 指定写出块大小为 bytes 字节
bs=bytes 同时设置读入/输出的块大小为 bytes 字节
cbs=bytes 指定转换缓冲区大小
skip=blocks 从输入文件开头跳过 blocks 个块后再开始复制
seek=blocks 从输出文件开头跳过 blocks 个块后再开始复制
count=blocks 仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数
conv=<关键字> 转换参数

conv 关键字有以下几种:

关键字 作用
conversion 用指定的参数转换文件
ascii 转换 ebcdic 为 ascii
ebcdic 转换 ascii 为 ebcdic
ibm 转换 ascii 为 alternate ebcdic
block 把每一行转换为长度为 cbs
unblock 使每一行的长度都为 cbs
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节
noerror 出错时不停止
notrunc 不截短输出文件
sync 将每个输入块填充到 ibs 个字节
--help 显示帮助信息
--version 显示版本信息

应用举例

创建 ISO 光盘映像:

dd if=/dev/sr0 of=/cd/cdrom.iso bs=2048 conv=noerror,sync

创建 /dev/sda 硬盘的 img 文件:

dd if=/dev/sda of=~/disk1.img

整盘复制(从 /dev/sda 到 /dev/sdb):

dd if=/dev/sda of=/dev/sdb

创建一个 100M 大小的文件:

dd if=/dev/zero of=mingongge.txt bs=100M count=1
1+0 records in
1+0 records out
104857600 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
du -sh mingongge.txt
100.1M    mingongge.txt

生成随机字符串:

dd if=/dev/urandom bs=1 count=33 | base64 -w 0
33+0 records in
33+0 records out
33 bytes (33 B) copied, 0.000199534 s, 165 kB/s
XrjvbxfTkz97rBuTmP5Ahb6gWN6E/uPyXqi/CAgBkEZ8

   转载规则


《Linux dd 命令》 由 吴杭沉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Linux 删除大量文件的效率对比 Linux 删除大量文件的效率对比
删除大量小文件时,不同方法的效率差异巨大。先建立 50 万个测试文件: for i in $(seq 1 500000); do echo text >> $i.txt; done 下面逐一对比几种删除方式。 rm 删除time rm -f
2018-10-04
下一篇 
Linux grep 文本查找 Linux grep 文本查找
grep 是 Linux 下最常用的文本搜索命令,经常结合管道符 | 使用——即在前面命令的执行结果中查找包含指定字符串的内容。 基础用法:结合管道过滤ps -ef 列出进程很多,用 grep 过滤出 redis 相关进程: $ ps -e
2018-09-06
  目录