dd [OPERAND]

dd 选项

复制一个文件,根据[OPERAND]进行转换和格式化

(1). OPERAND参数

说明1:dd的选项只有’--help’和’--version’,也就是帮助与版本信息。而下列都是[操作数],而非选项。

说明2:读取是输入,写入是输出

说明3:不指定if,默认从标准输入读取。如果不指定of,默认写入到标准输出

bs=BYTES 同时设置读取和写入(输入ibs输出obs)的块大小为BYTES个字节,具体看本章(4).块大小可以使用的计量单位

cbs=BYTES 一次转换BYTES个字节,即指定转换缓冲区大小

conv=CONVERSION[,CONVERSION] 用指定参数转换文件

count=N 仅拷贝N个块,块大小等于ibs指定的字节数

ibs=BYTES 一次读取BYTES个字节,即指定一个块大小为BYTES个字节(默认512)

if=FILE 从文件读取代替标准输入,即指定源文件

iflag=FLAG[,FLAG] 使用FLAG参数指定的输入方式

obs=BYTES 一次写入BYTES个字节,即指定一个快大小为BYTES个字节(默认512)

of=FILE 写入到文件代替标准输出,即指定目的文件

oflag=FLAG[,FLAG] 使用FLAG参数指定的输出方式

seek=BLOCKS 从输出文件开头跳过BLOCKS个输出块再开始复制(小心ibs和obs不一样)

skip=BLOCKS 从输入文件开头跳过BLOCKS个输入块再开始复制(小心ibs和obs不一样)

status=WHICH 用来控制dd程序的输出信息。分别为noxfer,none和progress,默认为progress。none不输出任何相关信息,错误信息正常输出。noxfer不输出最后的统计信息。progress输出所有信息。

(2).CONVERSION参数

ascii 由ebcdic码转换至ascii码

ebcdic 由ascii码转换至ebcdic码

ibm 由ascii码转换至替换的ebcdic码

block 对于输入中的每一行输出cbs个字节,用空格替换输入换行符,必要时用空格填充

unblock 删除cbs大小的块的尾部空格,并添加一个换行符

lcase 将大写字符转换为小写字符

nocreat 不创建输出文件,输出文件必须已经存在

excl 输出文件已经存在则失败;dd命令必须创建文件本身

notrunc 不要截断输出文件(不将文件长度缩短为0)

ucase 将小写字符转换为大写字符

sparse 尝试查找而不是编写空(NUL)输出块。在支持稀疏文件的文件系统中,当扩展输出文件时,这会创建稀疏输出。

swab 交换每对字节,奇数时最后一个字节只复制

noerror 读取数据发生错误后仍然继续

sync 把每个输入块以空(NUL)填充至ibs大小,如果配合日block或unblock使用,则以空格代替空(NUL)填充

fdatasync 结束前将输出文件数据写入磁盘

fsync 类似上面,但元数据也一同写入

(3).FLAG参数

append 追加模式。将数据拷贝到目标文件末尾,同时应该设置conv=notrunc。否则文件将在被拷贝之前清空。

cio 使用并发I/O存取模式,此模式使用直接I/O。并删除POSIX要求,将所有I/O串行化到同一个文件。在cio模式下无法打开该文件,同时打开一个标准文件(这句话可能有错,原文:A file cannot be opened at cio mode,and with a standard open in the same time.)。

direct 使用直接I/O存取模式,避免缓冲区高速缓存(不在内存中对文件数据进行缓存)

directory 仅拷贝文件夹,因为很多系统不支持对文件夹进行I/O操作,所以不太实用。

dsync 使用同步I/O模式读写数据。每次写的时候,都强制进行一次物理写入(写入/保存到磁盘)

sync 数据和元数据都使用同步I/O模式。

fullblock 直到填充万一个块后才返回

nonblack 使用非阻塞I/O

noatime 不改变文件的访问时间

noctty 不对dd使用指定的文件作为控制终端

nofollow 不跟随符号链接

nolinks 如果有多个硬链接则失败(硬链接和软链接也就是符号链接,自己查一下吧,有点复杂)

binary 使用二进制I/O

text使用text I/0

count_bytes 将count的单位设置为字节,而不是块

(4).块大小可以使用的计量单位

单位大小

代码

字节(1B)

c

字节(2B)

w

块(512B)

b

千字节(1024B)

k

兆字节(1024KB)

M

吉字节(1024MB)

G

(5).实例

  根据/dev/zero空文件创建一个50M的空文件

[xf@xuexi ~]$ dd if=/dev/zero of=1.txt bs=M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.0508383 秒,1.0 GB/秒
[xf@xuexi ~]$ ll -h 1.txt
-rw-rw-r--. 1 xf xf 50M 2月 26 10:17 1.txt
[xf@xuexi ~]$ cat 1.txt
[xf@xuexi ~]$

  注意:还可以用于完整备份。dd if=/dev/sda of=/dev/sdb(包括超级块等)

Linux命令之dd的更多相关文章

  1. Linux命令中dd的作用

    Linux命令中用vi编辑文本时dd的作用是删除整行文本的信息.

  2. linux命令总结dd命令详解

    一:dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文件 ...

  3. linux下显示dd命令的进度:

    linux下显示dd命令的进度: dd if=/dev/zero of=/tmp/zero.img bs=10M count=100000 想要查看上面的dd命令的执行进度,可以使用下面几种方法: 比 ...

  4. 在linux上用dd命令实现ghost功能

    ghost和g4l 安装操作系统,速度太慢,整个过程太冗长乏味了. 安装过程中,需要回答若干问题,系统需要安装无数个软件,创建和写入无数的文件.因为涉及到大量的文件定位和读写,速度一定是快不起来的. ...

  5. linux命令dd

    原文链接: http://blog.csdn.net/adaptiver/article/details/6672592 dd 使用dd这个linux命令可以创建一定大小文件. linux创建文件命令 ...

  6. linux下利用dd命令测试磁盘读写速度

    在Linux中,dd命令用于读取.转换和输出数据,它可从标准输入或文件中读取数据并输出到指定文件或标准输出中.该命令使用参数如下: 其中”=“后面的为设置的参数 If = <文件名>  : ...

  7. [转帖]linux命令dd

    linux命令dd   dd 是diskdump 的含义 之前学习过 总是记不住 用的还是少. http://embeddedlinux.org.cn/emb-linux/entry-level/20 ...

  8. linux下显示dd命令的进度

    sudo dd if=/dev/zero of=/tmp/zero.img status=progresslinux下显示dd命令的进度:dd if=/dev/zero of=/tmp/zero.im ...

  9. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

随机推荐

  1. CF763C Timofey and Remoduling

    题目戳这里. 这道题目纯粹是考思维. 若\(2N \le M\),由于答案肯定是\(s,s+d,\dots,s+(N-1)d\),我们任意枚举两个数\(a,b\),不妨设\(b\)在数列中出现在\(a ...

  2. hadoop基础----hadoop实战(七)-----hadoop管理工具---使用Cloudera Manager安装Hadoop---Cloudera Manager和CDH5.8离线安装

    hadoop基础----hadoop实战(六)-----hadoop管理工具---Cloudera Manager---CDH介绍 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来 ...

  3. 12.25模拟赛T3

    可以发现,答案O(根号)(因为链上答案最大,n/2,n/3...根号种) 每次求答案要二分 优秀的做法是: 对于小于根号n的暴力nlogn找,可能二分到同一个mid,记忆化一下最小的tot值 对于大于 ...

  4. HUSTOJ增加其他语言出现RuntimeError解决办法

    HUSTOJ增加其他语言,如Python.Java.Pascal等等,如果程序是正确的,却报运行错误,添加okcall就行. 具体错误可以看日志: [ERROR] A Not allowed syst ...

  5. c# vs2008报表

    1. 做报表没做几次,第一次做的都忘记了,还好今天做一下就把报表弄成功了.报表中“参数字段”是可以变的,就是说需要自己赋值或者是要计算的.而在苏据库字段里面的是固定的值.不需要计算(注:有的字段查询出 ...

  6. Mybatis如何查询部分字段

    解决问题:数据库表里面很多字段不太需要,有时只想取到里面的部分字段的值,如果重新定义 DTO 会比较麻烦. BookMapper.xml 文件中定义如下: ` <!-- Book全部字段 --& ...

  7. 【Mysql优化】索引碎片与维护

    在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致) 解决办法: (1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表. 比如: 表的引擎 ...

  8. DDCTF - evil 一个伪装成docx的exe

    0x01 题目描述 题目比较简单,不过这种题感觉比单纯的逆向算法来有意思的多,所以记录一下~ 0x02 脱壳 先拖到IDA瞅一眼,发现加壳了 用PEID查一下是什么壳,但是没有查出来.使用String ...

  9. mysql六:索引原理与慢查询优化

    一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...

  10. HDU1143(3*N的地板铺1*2的砖)

    Tri Tiling Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...