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