Linux——创建大文件
rehoni / 2024-08-05
先说结论
dd 和 truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。
fallocate 命令则不会创建稀疏文件,而且它的速度更快,这也是我比较推荐使用 fallocate 创建大文件的原因。
dd命令,用于复制和转换文件。创建一个名为 rumenz.img 的 2 GB 大小的文本文件
dd if=/dev/zero of=rumenz.img bs=2G count=1
可以根据需要来更改块大小和块数。例如,可以使用 bs=1M 和 count=1024 来获得 1024 Mb 的文件。
truncate命令,缩减或扩充指定文件的大小为指定值。参数所指定的文件如果不存在,那么该命令会创建这个文件。
truncate 命令将一个文件缩小或者扩展到所需大小。使用 -s 选项来指定文件的大小。
truncate -s 2G rumenz.img
fallocate命令,fallocate用于将块预分配给文件。对于支持fallocate系统调用的文件系统,这可以通过分配块并将其标记为未初始化来快速完成,因此不需要对数据块进行I / O操作。这是创建文件而不是用零填充的更快的方法。大文件几乎可以立即创建,而不必等待任何I / O操作完成。在以下文件系统上支持fallocate系统调用:btrfs,ext4,ocfs2和xfs文件系统(自内核版本v2.6.31起)。
创建一个 1 GB 的文件
fallocate -l 1G rumenz.img
使用ls -lh rumenz.img查看生成的文件。