来自公众号:入门小站
我们一般用touch命令创建一个空文件,但是如何创建特定大小的新文件呢?
当你排除故障或想在某些特定场景中进行测试时,你可能需要大于特定大小的大文件。假设 500 MB 或 2 GB。
你总不能创建一个空文件,然后开始在其中写入垃圾文本吧。下面介绍几种方式。
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 命令将每个 FILE 的大小减少或增加到所需的大小。
如果 FILE 大于所需大小,则会丢失额外的数据。如果 FILE 太短,它会被扩展,额外的部分将作为零字节访问。
让我们使用 truncare 命令创建 2 GB 大小的文件。
truncate -s 2G rumenz.img
你将看不到上述命令的输出,但是,可以使用 ls 命令查看生成的文件:
ls -lh rumenz.img
使用 truncate 命令创建大文本文件
默认情况下,如果请求的输出文件不存在,truncate 命令将创建新文件。你可以使用该选项
-c
来避免创建新文件。
fallocate 命令是我推荐的创建大文件的方法,因为它是最快的 。
要创建一个 1 GB 的文件,可以这样:
fallocate -l 1G rumenzimg
检查输出文件:
ls -lh rumenz1.img
在 Linux 中使用 fallocate 命令创建大文件
fallocate
使用它比通过用零填充文件来创建文件要快得多。
dd和truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,当分配给文件的块主要为空时,它会尝试以非常有效的方式利用文件系统上的空间。
稀疏文件具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。
这就是为什么我更喜欢使用 fallocate 命令。它速度更快,并且不会创建稀疏文件。
---END---