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 的此类文件都是可以的
来源:oschina
链接:https://my.oschina.net/u/148042/blog/319004