您的当前位置:首页正文

dd 转换和拷贝复制文件

2024-11-28 来源:个人技术集锦

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文件
显示全文