dd 命令主要用于转换和拷贝复制文件,默认情况下dd命令会从标准输入中读取,然后输出到标准输出,其语法格式如下:
dd 参数
ps:dd命令复制的出来的文件可以作为一个块设备文件;
常用参数:
if=file #从源文件file中读取数据,缺省值为标准输入(*****最常用参数*****)
of=file #往目标文件file中写入数据,缺省值为标准输出
ibs=bytes #读取数据时,一次性读出多少bytes大小的块,如果不指定,默认512字节,也可以指定B、KB、M、G等单位
obs=bytes #写入数据时,一次性写入多少bytes大小的块,如果不指定,默认512字节,也可以指定B、KB、M、G等单位
bs=bytes #统一ibs和obs的值(如果指定了ibs或者obs,则bs会将ibs和obs覆盖掉)(*****最常用参数*****)
skip=N #跳过N*ibs字节数再开始读取数据
seek=N #跳过N*obs字节数再开始写入数据
count=N #总共读取N*ibs字节数的数据,当然写入的数据也是这个大小(*****最常用参数*****)
conv=value #表示转换,value值可以是,lcase表示把大写字符转换为小写字符,ucase把小写字符转换为大写字符
演示示例:
1、dd主要功能之备份与恢复:
[root@master ~]# dd if=/dev/sda2 of=/boot_bak #对sda2块设备进行备份拷贝
[root@master ~]# dd if=/dev/hdx of=/path/to/image #将/dev/hdx全盘数据备份到指定路径的image文件
[root@master ~]# dd if=/dev/hdx | gzip >/path/to/image.gz #备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
[root@master ~]# dd if=/path/to/image of=/dev/hdx #将备份文件恢复到指定盘
2、dd主要功能之创建一个文件,文件可用户
[root@master ~]# dd if=/dev/zero of=/block bs=1M count=1024
#表示从/dev/zreo中读取1G大小,写入到/block,其实相当于创建一个1G的/block文件,/dev/zreo是一个二进制的比特流
[root@master ~]# dd if=/dev/zero of=/var/swap bs=1024 count=1024000
#bs参数不写单位,默认字节B,1024字节,count总共1024000个,1024*1024000=1048576000B=1024000KB=1G,所以var下就多了一个大约1G的swap文件
[root@master ~]# dd if=/dev/zero of=/var/swap1 bs=1M count=1024 #var下就多了一个大约1G的swap1文件
3、dd主要功能之破坏系统、销毁磁盘数据(危险操作)
[root@master ~]# dd if=/dev/urandom of=/dev/sda1 #利用随机数填充分区,可以用来销毁数据,/dev/sda1分区被破坏
[root@master ~]# dd if=/dev/zero of=/dev/sda #利用zero比特流填充硬盘,可以用来销毁数据,/dev/sda硬盘被破坏
4、dd主要功能之测试硬盘速度
[root@master ~]# dd if=/dev/zero of=/root/test.file bs=64k count=4096 #测试磁盘读写速度
[root@master ~]# dd if=/dev/zero of=/root/test1.file bs=512k count=4096 #测试磁盘读写速度
5、dd主要功能之转换文件
[root@master ~]# dd if=test1 of=test2 conv=ucase #将test1文件中的所有英文字母转换为大写,然后输出为test2文件
[root@master ~]# dd if=test1 of=test3 conv=lcase #将test1文件中的所有英文字母转换为小写,然后输出为test3文件