快速创建2G的大文件

怎么在Linux中几秒钟创建一个2GB的大文件?

入门小站
分享运维技巧及10k+Stars的开源项目
210篇原创内容

【Linux250个常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

我们一般用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 命令。它速度更快,并且不会创建稀疏文件。

【Linux250个常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。

Linux

Linux?

LinuxIO

linux

线

30Git,

UDP分片与丢包,UDP真的比TCP高效吗?

图片
入门小站
分享运维技巧及10k+Stars的开源项目
210篇原创内容
收录于合集 #Linux
 642
下一篇UDP分片与丢包,UDP真的比TCP高效吗?
阅读 369
 
写下你的留言
 
 
 
posted @ 2022-12-06 22:50  往事已成昨天  阅读(471)  评论(0编辑  收藏  举报