date:2012/05/08
dd命令用于文件的底层拷贝,在拷贝的过程中通过指定某些选项还可以改变对数据做些处理。
dd命令可以用来做磁盘备份,数据恢复,磁盘数据擦洗,MBR备份,CD/DVD数据备份等功能。
dd常用的选项有:
if=infile
用于指定输入文件,如果没有指定则为标准输入。
of=outfile
用于指定输出文件,如果没有指定则为标准输出。
ibs=bytes
用于设置每个输入块所包含的字节数量。默认值为512字节。
obs=bytes
用于设置每个输出块所包含的字节数量。默认值为512字节。
bs=bytes
用于设置输入和输出块的字节,等价于ibs = obs = bs。
cbs=bytes
用于设置转换后块的大小。
skip=n
跳过输入文件的n * ibs 个字节后开始拷贝
seek=n
跳过输出文件的n * obs个字节后开始拷贝
count=n
设置拷贝的块数
conv=conversion[,conversion]….
设置转换的规则。
常用的规则有:
1. block:对于文本模式的每一行,输出”cbs”个字节,将结尾的newline替换为空格,并且在需要的情况下使用空格填充。
2. unblock:将每个“cbs”个字节的块结尾的连续空格删掉,并替换为newline
3. ucase:从大小改为小写
4. sparse:创建稀疏文件
5. swap:交换没输入的两个字节
6. excl:输出文件已经存在则失败
7. nocreate:不创建文件,文件必须已创建
8. notrunc:不将文件的长度缩短为0
9. noerror:发生错误后继续
10. fdatasync:在结束之前同步输出数据,强制进行物理写操作
11. fsync:在结束之前同步输出数据和元数据。对输出数据和元数据进行强制物理写操作
iflag=flag[,flag]…
设置访问输入文件时的flag
oflag=flag[,flag]…
设置访问输出文件时的flag
以下为常用的flag:
1. append:仅用于oflag。将数据拷贝到目标文件的结尾,同时应该设置conv=notrunc。否则文件将在拷贝之前被清空。
2. cio:使用并发I/0模式,不能同标准open一起使用。
3. direct:使用直接I/0,不在内存中对文件的数据进行缓存。
4. directory:仅仅拷贝文件夹,因为很多系统不支持对文件夹进行I/O操作,所以不太实用。
5. dsync使用同步I/O来读写数据。即每次写的时候,都强制进行一次物理写。
6. sync:对数据和元数据都是用同步模式
7. nocache:不对文件使用数据缓存。
8. nonblock:使用非阻塞I/O
9. noatime:不改变文件的访问时间。
10. noctty:不对dd使用指定的文件作为控制终端
11. nofollw:不解析符号链接
12. nolinks:如果文件有多个硬链接,则失败
13. binary:使用二进制I/O
14. text:使用text/0
15. fullblock:直到填充完一个块之后才返回
16. count_bytes:将count的单位设置为字节,而不是块
17. skip_bytes:将skip的单位设置为字节,而不是块
18. seek_bytes:将seek_bytes的单位设置为字节,而不是块
本文转自hipercomer 51CTO博客,原文链接:http://blog.51cto.com/hipercomer/857916