怎么在Linux中几秒钟创建一个2GB的大文件?
原创 入门小站 入门小站 2022-12-06 21:50 发表于湖北 收录于合集#Linux642个 入门小站 分享运维技巧及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」 自取。
近期热文
入门小站 分享运维技巧及10k+Stars的开源项目 210篇原创内容 公众号 收录于合集 #Linux 642个 下一篇UDP分片与丢包,UDP真的比TCP高效吗? 阅读 369 写下你的留言 标签:文件,truncate,创建,命令,2G,Linux,fallocate From: https://www.cnblogs.com/cherishthepresent/p/16961687.html