当前位置: 首页>>技术教程>>正文


files – 如何快速制作大文件?

,

问题描述

制作大小为2 GB的文件的快速简便的方法是什么?

最佳办法

zero-fill method(此处进行修改以避免potential memory bottlenecks)花了17秒的时间在SSD上创建了10 GB的文件,并导致Ubuntu的图形界面无法响应。

$ time sh -c 'dd if=/dev/zero iflag=count_bytes count=10G bs=1M of=large; sync'
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 17.2003 s, 624 MB/s

real    0m17.642s
user    0m0.008s
sys     0m9.404s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
10737422336     large

fallocate通过直接操作文件分配的磁盘空间来立即创建大文件:

$ time sh -c 'fallocate -l 10G large; sync'

real    0m0.038s
user    0m0.000s
sys     0m0.016s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
10737422336     large

truncate也可以立即工作,并创建sparse files,直到以后写入数据时,该sparse files才用完实际的磁盘空间:

$ time sh -c 'truncate -s 10G large; sync'

real    0m0.014s
user    0m0.000s
sys     0m0.004s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
0       large

次佳办法

一种简单的方法是使用dd命令来写一个完全为零的文件。

dd if=/dev/zero of=outputFile bs=2G count=1
  • 如果=输入文件

  • of =输出文件

  • bs =字节

如果要计算机(1024 * 1024 * 1024)千兆字节,请在size参数中使用G;如果要人用(1000 * 1000 * 1000)千兆字节,请使用GB。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9624.html,未经允许,请勿转载。