dd-又一个拷贝命令
简介
在Linux上说到文件拷贝,很多时候第一反应就是 cp
,但是除了 cp
之外,还有一个是基于底层的拷贝命令,那就是 dd
。
dd
是基于块接口进行数据拷贝,效率比基于文件接口的 cp
要高很多,而且还有很多自定义选项。
使用
dd
命令的使用很简单,但要理解并熟悉运用自定义参数也是不那么容易的,下面只讨论一些常用选项,更多信息可使用 man dd
查看。
dd 选项
选项详细为:
bs=<字节数>:将ibs(输入)与obs(输出)设成指定的字节数(区块大小);
cbs=<字节数>:转换时,每次只转换指定的字节数;
conv=<关键字>:指定文件转换的方式;
count=<区块数>:仅读取指定的区块数;
ibs=<字节数>:每次读取的字节数;
obs=<字节数>:每次输出的字节数;
of=<文件>:输出到文件;
seek=<区块数>:一开始输出时,跳过指定的区块数;
skip=<区块数>:一开始读取时,跳过指定的区块数;
--help:帮助;
--version:显示版本信息。
简单使用:
# 拷贝文件
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
# 拷贝文件指定大小
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=5M count=1 # 只拷贝SRC中前5M的内容到DEST,与"bs=1M count=5"等价。
# 磁盘拷贝
dd if=/dev/sda of=/dev/sdb
# 备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
# 破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=256 count=1
块大小可以使用的计量单位表:
单元大小 | 代码 |
---|---|
字节(1B) | c |
字节(2B) | w |
块(512B) | b |
千字节(1024B) | k |
兆字节(1024KB) | M |
吉字节(1024MB) | G |
两个特殊设备:
/dev/null
:数据黑洞;
/dev/zero
:吐零机。