使用dd命令快速生成大文件或者小文件的方法
转载请说明出处:http://blog.csdn.net/cywosp/article/details/9674757
在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件。具体用法简单总结如下:
1.
dd命令可以轻易实现创建指定大小的文件,如
dd
if=/dev/zero
of=test
bs=1M
count=1000
在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘
则可以
dd
if=/dev/zero
of=test
bs=1M
count=0
seek=100000
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。
2.
随机生成1百万个1K的文件
seq
1000000
|
xargs
-i
dd
if=/dev/zero
of={}.dat
bs=1024
count=1
⑵ 如何使用shell脚本生成一个大小为300M的文件
有时候,我们需要生成指定大小的随机文件,比如在学习过程中使用的测试文件。
dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512;c=1;k=1024;w=2
命令:
Linux:/qinys # dd if=/dev/zero of=tmp.data bs=100m count=3
命令解释:
该命令会创建一个大小为100m的文件tmp.data;if代表输入文件(input file),of代表输出文件(output file),bs代表以字节为单位的块大小(block size,BS),count代表被复制的块数。(如果把count=3,那么文件大小为300M)《Linux就该这么学》一起学习linux
/dev/zero是一个字符设备,他会不断的返回0值字节(\0)
⑶ 在linux中,能生成真正的随机数吗如何生成
linux 是个操作系统,和生成随机数没有关系。
你是不是要说在 linux 下的 c++ 程序中生成随机数?
c++ 是标准的,无论在哪个系统下,都使用 srand 和 rand 配合生成真正的随机数。