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
posted @ 2020-05-27 00:10  DDKK64  阅读(191)  评论(0编辑  收藏  举报