以前创建文件我一般用dd来创建,例如创建一个512M的文件:

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的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的

当然,因为不实际写入硬盘,所(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

文件系统对于这样创建的文件有特殊处理,叫稀疏文件,现在创建大文件光速了,再也不用纠结等半天了。
from:http://www.111cn.net/sys/linux/55537.htm

linux下fallocate快速创建大文件的更多相关文章

  1. Linux下迅速删除一个大文件夹

    rsync -av --delete /tmp/null/ ./        迅速删除大文件夹,如缓存 快速删除大目录(即大量文件)1.先建立一个空目录 mkdir /data/blank 2.用r ...

  2. linux(centos8):用fallocate快速生成大文件

    一,fallocate的用途? 1,用途 我们有时需要用大文件来测试下载速度, 有时需要用大文件来覆盖磁盘空间, 如果在网上搜索,很多文章讲的是使用dd等工具, 事实上linux系统已经内置了生成大文 ...

  3. 【转】linux 下清空或删除大文件的一些方法

    原文:https://linux.cn/article-8024-1.html 在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何 Linux 命令行编辑器 去打开这些文件 ...

  4. linux下使用vim创建编辑文件

    vi/vim 使用实例 如果要想用vim/vi创建一个文件(使用命令): vim test.txt   不管文件存在与否 直接输入 vi 文件名 就能够进入 vi 的一般模式 按下 i 进入输入模式( ...

  5. windows下如何快速删除大文件

    rmdir  磁盘:\文件夹的名字  /s /q; eg:rmdir E:\vue_workspace\KB\day08    /s/q /S 表示除目录本身外,还将删除指定目录下的所有子目录和文件. ...

  6. Linux下清空或删除大文件内容的2种方法

    在Linux终端下处理文件时,有时候我们想要直接清空文件的内容时但又不用使用任何Linux命令行编辑器,去打开这些文件.那如何才能达到这个目的呢? 1.通过重定向到NULL来清空文件内容 清空或者让一 ...

  7. Linux 下清空或删除大文件内容的 5 种方法

    在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何 Linux 命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空 ...

  8. Linux 删除文件未释放空间问题处理,下清空或删除大文件

    linux里的文件被删除后,空间没有被释放是因为在Linux系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么 ...

  9. 【转】Linux 中清空或删除大文件内容的五种方法(truncate 命令清空文件)

    原文: http://www.jb51.net/article/100462.htm truncate -s 0 access.log -------------------------------- ...

随机推荐

  1. HDU 5493 Queue 【线段树】

    <题目链接> 题目大意:给你n个人的身高和他前面或者后面身高大于他的人的个数,求一个字典序最小的满足此条件的序列,如果不存在输出“impossible”. 解题分析: 因为要保证字典序最小 ...

  2. checkbox jquery操作总结

    $('input[name="myCheckbox"]').prop('checked','true'); // 全选 $('input[name="myCheckbox ...

  3. jquery实时获取时间

    $(document).ready(function(){ function time(){ var date=new Date(); var h=date.getHours(); var m=dat ...

  4. 南阳171----聪明的kk

    //简单的dp #include<cstdio> #define Max(a,b) ((a)>(b)?(a):(b)) ]; int main() { int i,j,n,m,x,t ...

  5. Wannafly Winter Camp 2019.Day 8 div1 I.岸边露伴的人生经验(FWT)

    题目链接 \(Description\) 给定\(n\)个十维向量\(\overrightarrow{V_i}=x_1,x_2,...,x_{10}\).定义\(\overrightarrow{V}= ...

  6. 1014 Uniform Generator ACM

    http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目的英文实在是太多了 ,搞不懂. 最后才知道是用公式seed(x+1) = [seed(x) + STE ...

  7. No mapping found for HTTP request with URI [/webapp/] in DispatcherServlet with name 'SpringMVC'

    可能有如下几个原因: 1.是否设置了web目录,在IDEA中,web目录是这样的 如果没有设置,按照下面的方法设置: 选中要设置的模块,点击file.project structure,设置web.x ...

  8. MySQL(九)

    封装 观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的 创建MysqlHelper.py文件,定义类 #encoding=utf8 import MySQLdb class Mysql ...

  9. mysql命令(command)

    连接mysql命令: -uuserName -pPassword 显示表的索引: SHOW INDDEX FROM table_name 查看mysql的超时时间:SHOW GLOBAL VARIAB ...

  10. Java 基础 在Java中需要使用内存的组件

    Java程序启动后作为一个进程运行在操作系统中,那么这个进程有哪些部分需要分配内存? 1 Java堆 Java堆用于存储Java对象,堆的大小在JVM启动时向操作系统一次性申请完成,通过-Xmx和-X ...