如何在Linux (Red Hat Linux)系统中快速创建大文件?

dd可以完成这项工作,但是从/dev/zero读取并写入驱动器可能会花费很长时间,因为您需要一个几百gb大小的文件进行测试……如果你需要重复这样做,时间就会增加。

我不关心文件的内容,我只想快速创建它。如何做到这一点呢?

使用稀疏文件不能解决这个问题。我需要为文件分配磁盘空间。


当前回答

其中seek是你想要的文件的大小,单位是字节- 1。

dd if=/dev/zero of=filename bs=1 count=1 seek=1048575

其他回答

其中seek是你想要的文件的大小,单位是字节- 1。

dd if=/dev/zero of=filename bs=1 count=1 seek=1048575

创建一个1gb的文件:

dd if=/dev/zero of=filename bs=1G count=1

其中seek是所需文件大小(以字节为单位)的示例

#kilobytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200K

#megabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200M

#gigabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200G

#terabytes
dd if=/dev/zero of=filename bs=1 count=0 seek=200T

从dd手册页:

block和BYTES后面可以跟着下面的乘法后缀:c=1, w=2, b=512, kB=1000, K=1024, MB=1000*1000, M=1024*1024, GB =1000*1000*1000, G=1024*1024*1024,对于T, P, E, Z, Y,依次类推。

Linux和所有文件系统

xfs_mkfile 10240m, 10gigs文件

Linux &和一些文件系统(ext4, xfs, btrfs和ocfs2)

fallocate -l 10G 10Gigfile

OS X, Solaris, SunOS,可能还有其他的unix系统

mkfile 10240m 10Gigfile

hp - ux

prealloc 10Gigfile 10737418240

解释

尝试mkfile <size> myfile作为dd的替代。使用-n选项,大小会被注明,但直到数据写入磁盘块时才会分配磁盘块。如果没有-n选项,则空间为零,这意味着写入磁盘,这意味着花费时间。

mkfile派生自SunOS,并不是到处都可用。大多数Linux系统都有xfs_mkfile,它以完全相同的方式工作,而且不只是在XFS文件系统上(尽管名称相同)。它包含在xfsprogs (Debian/Ubuntu)或类似的命名包中。

大多数Linux系统也有fallocate,它只在某些文件系统上工作(比如btrfs、ext4、ocfs2和xfs),但它是最快的,因为它分配所有的文件空间(创建非空洞文件),但不初始化任何文件。

你也可以使用“yes”命令。语法相当简单:

#yes >> myfile

按“Ctrl + C”停止它,否则它将耗尽所有可用空间。

要清除该文件,请执行以下命令:

#>myfile

将清除此文件。