dd 命令
dd 命令 —— 用于读取、转换并输出数据
dd
可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。一般用于制作 Linux 系统盘,用 dd
命令进行两块硬盘的复制,它除了能够复制文件中的数据,还能够复制分区和文件系统,可以完整地复制出一块和原系统盘一样的硬盘。
命令用法
常用可选参数
OPERAND 格式化参数
参数
说明
bs=BYTES
一次读/写 BYTES 个字节
cbs=BYTES
一次转换 BYTES 个字节
conv=CONVS
根据 symbol list(符号表,以逗号分隔)的格式转换文件
count=BLOCKS
仅从输入块中拷贝 BLOCKS 个块
ibs=BYTES
一次读取 BYTES 个字节(默认 512)
if=FILE
从文件而不是标准输入中读取
iflag=FLAGS
根据 symbol list(符号表,以逗号分隔)指定的格式读取
obs=BYTES
一次写入 BYTES 个字节(默认 512)
of=FILE
写入到文件而不是标准输出
oflag=FLAGS
根据 symbol list(符号表,以逗号分隔)指定的格式写入
seek=BLOCKS
在输出的开头跳过 BLOCKS 个 obs-sized 大小的块
skip=BLOCKS
在输入的开头跳过 BLOCKS 个 ibs-size 大小的块
status=WHICH
WHICH 的信息用来控制输出到标准错误的内容,noxfer
不显示转换的统计, none
则全都不显示
CONV 格式化参数
参数
说明
ascii
将 EBCDIC 编码转为 ASCII 编码
ebcdic
将 ASCII 编码转为 EBCDIC 编码
ibm
将 ASCII 编码转为 alternate EBCDIC 编码
block
将每一行(带有换行符)的长度填充为 cbs-size 的大小
unblock
将每一个 cbs-size 大小的记录的尾随空格以换行符替换
lcase
将大写字母换为小写字母
nocreat
不要创建新的输出文件
excl
如果输出文件已存在则失败
notrunc
不要删除输出文件
ucase
将小写字母换为大写字母
sparse
对于为 NUL 的输入文件,尝试寻找而不是写入输出
swab
交换每对输入字节
noerror
当读取出错后继续执行
sync
用 NUL 填充每个输入块直至大小为 ibs-size ;当与 block 或 unblock 一起使用时,则使用空格而不是 NUL
fdatasync
在结束前就写入到物理的输出文件上
fsync
和上面一样,但是也会写入元数据
FLAG 格式化参数
参数
说明
append
使用追加模式
direct
对数据使用 direct I/O
directory
除非是目录,否则操作失败
dsync
对数据使用 synchronized I/O
sync
和上面一样,但也会作用于元数据
fullblock
(仅针对 iflag)累加完整的输入块
nonblock
使用 non-blocking I/O
noatime
不要更新其访问时间
noctty
不要从文件中分配控制终端(controlling terminal)
nofollow
不处理符号链接
可选参数
参数
说明
--help
显示帮助信息并退出
--version
输出版本信息并退出
使用实例
发送一个 USR1 信号到一个
dd
处理进程会让他打印出 I/O 信息到标准错误,然后恢复拷贝备份与恢复
拷贝内存内容到硬盘
Last updated