出于各种原因,你也许需要生成一个包含随机数据的文件。这可能是用于执行测试的测试文 件,比如用一个大文件作为输入来测试应用程序的效率;也可能是测试文件分割,或是创建环回 文件系统(环回文件自身包含文件系统,这种文件可以像物理设备一样使用mount命令进行挂 载)。专门写一个程序来创建这些文件可得花点功夫,所以我们用一些通用工具帮忙解决。
创建特定大小的大文件最简单的方法就是利用dd命令。dd命令会克隆给定的输入内容,然 后将一模一样的一份副本写入到输出。stdin、设备文件、普通文件等都可作为输入,stdout、 设备文件、普通文件等也可作为输出。下面是使用dd命令的一个示例:
$ dd if=/dev/zero of=junk.data bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0013648 s, 768 MB/s
该命令会创建一个1MB大小的文件junk.data。来看一下命令参数:if代表输入文件(input file), of代表输出文件(output file),bs代表以字节为单位的块大小(block size),count代表需要被 复制的块数。
使用dd命令时一定得留意,该命令运行在设备底层。要是你不小心出了岔 子,搞不好会把磁盘清空或是损坏数据。所以一定要反复检查dd命令所用的语 法是否正确,尤其是参数of=。
在上面的例子中,我们将bs指定为1MB,count指定为1,于是得到了一个大小为1MB的文 件。如果把bs设为2MB,count设为2,那么总文件大小就是4MB。
块大小可以使用各种计量单位: