Linux dd
最后修改:2020/11/2
简介
dd能对文件进行字节级,块级的拷贝操作。在读取或写入\dev
中的文件时常常用到。
选项
-
ibs=BYTES
设置读入块字节数,默认512。dd
读入以块为单位。 -
obs=BYTES
设置输出块字节数,默认512。dd
输出以块为单位。 -
bs=BYTES
同时设置并覆盖 ibs 和 obs 选项。 -
count=N
指定读入的块的数量,大小为 ibs,不指定会读完整个文件。 -
if=FILE
从指定文件读入,不指定此选项则从stdin读入 -
of=FILE
从指定文件写入,不指定此选项则输出到stdout -
status=level
设置输出信息的内容。可为以下选项之一:
‘none’:不输出信息和警告。
‘noxfer’:不输出传输速度和传输字节数信息(就是最后一行信息)
‘progress’:除了不用status参数时的dd的输出外,每秒显示传输速度与完成进度。 -
conv=CONVS
设置转换选项。多个选项使用逗号分隔开。
nocreat:不要创建输出文件。只能写入到以存在的文件。
notrunc:不要截断输出文件。如果输出文件已存在就会覆盖。
noerror:忽略错误并继续
fsync:在结束后立刻同步输出数据和元数据(关于文件的额外信息)。确保数据写入到设备上。
-
iflag=FLAGS
输入标志设置。多个选项使用逗号分隔开。 -
oflag=FLAGS
输出标志设置。多个选项使用逗号分隔开。
append:添加到文件末尾。与notrunc连用防止之前的数据被清零。
-
seek=N
跳过从输出文件开头算起,N块obs大小的数据。 -
skip=N
跳过从输入文件开头算起,N块ibs大小的数据。
输出信息
一般完成后可以看到x+y records in
(x,y显示为常数)。表示读(写)操作完整执行了x个block,还有y个block没达到bs大小。
一些应用
1). 复制文件
dd if=src of=dest
2). 展示文件大小
dd if=src of=/dev/null
3). 创建0填充文件
dd bs=BYTES count=N if=/dev/zero of=dest
4). 在末尾添加字节
dd bs=BYTES count=N conv=notrunc oflags=append if=/dev/zero of=dest
5). 让一个文件覆盖另一文件中的某个部分
dd bs=BYTES count=N conv=notrunc seek=X of=src if=dest
其中,X
为期望插入的位置(以块计)。
6). 将文件的某个部分dump到新的文件
dd bs=BYTES count=N if=src skip=M >dest.dump
将文件src
从偏移M*BYTES
字节开始,长度为N*BYTES
的内容dump到dest.dump
。
7). 将镜像写到设备上
dd if=image of=/dev/sdX conv=fsync