怎么在Linux中几秒钟创建一个2GB的大文件?
2023-2-2 12:21:10 Author: Linux学习(查看原文) 阅读量:14 收藏

来自公众号:入门小站

我们一般用touch命令创建一个空文件,但是如何创建特定大小的新文件呢?

当你排除故障或想在某些特定场景中进行测试时,你可能需要大于特定大小的大文件。假设 500 MB 或 2 GB。

你总不能创建一个空文件,然后开始在其中写入垃圾文本吧。下面介绍几种方式。

使用dd命令创建大文件

dd 命令用于复制和转换文件。它最常见的用途是创建实时 Linux USB。

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

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

根据文件的大小,该命令将需要一些时间才能完成。

使用 dd 命令创建大文本文件

在这里,你创建了一个大小为 2 GB 的文件,其中有一个大小为 (bs, block size) 2 G 的块(计数 1)。该文件包含 NULL 字符 (/dev/zero)。

你可以根据需要更改块大小和块数。例如,你可以使用 1M 作为 bs 和 1024 作为计数来获得 1024 Mb 的文件。

使用 truncate 命令创建大文件

truncate 命令将每个 FILE 的大小减少或增加到所需的大小。

如果 FILE 大于所需大小,则会丢失额外的数据。如果 FILE 太短,它会被扩展,额外的部分将作为零字节访问。

让我们使用 truncare 命令创建 2 GB 大小的文件。

truncate -s 2G rumenz.img

你将看不到上述命令的输出,但是,可以使用 ls 命令查看生成的文件:

ls -lh rumenz.img

使用 truncate 命令创建大文本文件

默认情况下,如果请求的输出文件不存在,truncate 命令将创建新文件。你可以使用该选项-c来避免创建新文件。

使用 fallocate 命令创建大文件

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

要创建一个 1 GB 的文件,可以这样:

fallocate -l 1G rumenzimg

检查输出文件:

ls -lh rumenz1.img

在 Linux 中使用 fallocate 命令创建大文件

fallocate使用它比通过用零填充文件来创建文件要快得多。

结论

dd和truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,当分配给文件的块主要为空时,它会尝试以非常有效的方式利用文件系统上的空间。

稀疏文件具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。

这就是为什么我更喜欢使用 fallocate 命令。它速度更快,并且不会创建稀疏文件。

---END---

推荐↓↓↓

文章来源: http://mp.weixin.qq.com/s?__biz=MzI4MDEwNzAzNg==&mid=2649459763&idx=2&sn=1c5350a2e2d348c5c4ff974d120a9609&chksm=f3a2ad40c4d52456fb54a3d27a9e0fee55aeb5ff7bd670e4b033dcd2ee18184d69807f24a5de#rd
如有侵权请联系:admin#unsafe.sh