dd命令

Catalogue
  1. 1. 参数详解
  2. 2. 快速生成大文件

作死命令,慎用!!!

参数详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if= in file 输入文件,linux下文件的概念应用范围相当广,通常是普通光盘镜像文件或者块设备

of= out file 输出文件,通常是普通光盘镜像文件或者块设备

bs= buffer size 缓存区大小,你可以认为dd命令读取一块输入文件到buffer(缓存区),然后将缓存区的内容吸入到输出文件。通常可将bs=1M或者bs=1KB之类的。

count= 读取输入文件的最多次数。默认情况下,dd命令直接把输入文件已知读取到文件末尾,这个参数可以控制读取的大小。

skip= 跳过文件开头的大小。默认错排能个文件开头开始读取。

例子:
  将U盘当前状态保存下来成为一个文件。
  dd if=/dev/sdb of=/backup/ISO/Upan/save.iso
  清空U盘的分区信息(慎重使用)
  dd if=/dev/zero of=/dev/sdb bs=512K count=1

快速生成大文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dd if=/dev/zero of=file bs=1M count=20000

会生成一个20G的file 文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)
此命令可以生成一个实际的20G的文件,文件会写入硬盘,文件产生的速度和硬盘读写速度有关系,读写速度越快,产生文件越快。


dd if=/dev/zero of=file bs=1M count=0 seek=20000

产生一个大文件的数据,但是并不需要占用磁盘空间

此时创建的文件在文件系统中的显示大小为20G,但是并不实际占用磁盘,因此创建速度与内存速度相当。

seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。

当然,因为不实际写入硬盘,所以你在容量只有20G的硬盘上创建100G的此类文件都是可以的

参考链接1

参考链接2