Linux下快速创建大文件的4种方法

1、使用 dd 命令创建大文件

dd 命令用于复制和转换文件,它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。

假设我们要创建一个名为 rumenz.img 的 2 GB 大小的文本文件,可以执行以下操作:

dd if=/dev/zero of=rumenz.img bs=2G count=1

我们可以根据需要来更改块大小和块数。例如,可以使用 bs=1M 和 count=1024 来获得 1024 Mb 的文件。

2、使用 truncate 命令创建大文件

本命令缩减或扩充指定文件的大小为指定值,参数所指定的文件如果不存在,那么该命令会创建这个文件。

如果一个文件的大小比参数指定的大,那么超出的部分就会被丢弃;如果一个文件比参数指定的小,那么文件会被扩充,并且被扩充的部分(空洞)在被读取的时候是字节0。

truncate 命令将一个文件缩小或者扩展到所需大小,使用 -s 选项来指定文件的大小。

接下来,我们使用 truncare 命令来创建一个 2GB 大小的文件。

truncate -s 2G rumenz.img

可以使用ls -lh rumenz.img命令查看生成的文件。默认情况下,如果请求的输出文件不存在,truncate 命令将创建新文件,我们可以使用 -c 选项来避免创建新文件。

3、使用 fallocate 命令创建大文件

fallocate命令可能是Linux中可以用来创建文件的鲜为人知的命令之一。fallocate用于将块预分配给文件。对于支持fallocate系统调用的文件系统,这可以通过分配块并将其标记为未初始化来快速完成,因此不需要对数据块进行I / O操作。

这是创建文件而不是用零填充的更快的方法,大文件几乎可以立即创建,而不必等待任何I / O操作完成。在以下文件系统上支持fallocate系统调用:btrfs、ext4、ocfs2和xfs文件系统(自内核版本v2.6.31起)。

fallocate 命令是我比较推荐的创建大文件的方法,因为它创建大文件的速度是最快的。

假设我们要创建一个 1 GB 的文件,可以执行以下操作:

fallocate -l 1G rumenz.img

可以使用ls -lh rumenz.img查看生成的文件。

4、代码创建一个累加数文件

  1. FILESIZE = 1*1024*1024*1024 #1G

  2. print(int(FILESIZE/256))

  3. file = open("./Fibonaci.txt",'w+')

  4. for i in range(int(FILESIZE/256)):

  5. for j in range(256):

  6. file.write(str(j))

  7. file.seek(0,0)

  8. #print(file.read())

  9. file.close()

5、结论

dd 和 truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。

fallocate 命令则不会创建稀疏文件,而且它的速度更快,这也是我比较推荐使用 fallocate 创建大文件的原因。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值