Linux如何生成指定大小的文件 |
您所在的位置:网站首页 › linux生成指定大小文件的命令有哪些 › Linux如何生成指定大小的文件 |
以前创建文件我一般用dd来创建,例如创建一个512M的文件: dd命令可以轻易实现创建指定大小的文件,如 dd if=/dev/zero of=test bs=1M count=1000 1会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源) 但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢 在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘 则可以 dd if=/dev/zero of=test bs=1M count=0 seek=100000 1此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当 seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的 当然,因为不实际写入硬盘,所(www.111cn.net)以你在容量只有10G的硬盘上创建100G的此类文件都是可以的 记得以前做Windows开发的时候,有个API叫SetEndOfFile,可以用来将文件内部游标所在位置设为文件末尾,可以用来截取或者 扩展文件,这个函数本质上相当于直接操作文件分区表的结构,用它来作文件扩展是不需要频繁的填充文件,linux下肯定也有对应的东西,即 ftrunc/truncate这两个函数。 那么直接利用这个特性来创建大文件的工具就肯定有人做好了,经搜索找到了fallocate和truncate两个命令, 以及GNU dd的seek扩展: 代码如下 复制代码 # fallocate -l 10G bigfile # truncate -s 10G bigfile # dd of=bigfile bs=1 seek=10G count=0 12345文件系统对于这样创建的文件有特殊处理,叫稀疏文件,现在创建大文件光速了,再也不用纠结等半天了 本文来自:爱好Linux技术网 本文链接:http://www.ahlinux.com/mainte/9501.html |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |