Linux:快速创建大文件

文章介绍了在Linux环境中,使用dd、truncate和fallocate命令快速创建大文件以占用或测试磁盘空间的情况。dd命令实际写入数据,速度较慢;truncate命令改变文件大小但不写入数据;fallocate创建大文件最快且不产生稀疏文件。由于fallocate的效率和非稀疏特性,它是创建大文件的优选方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介:在涉及磁盘空间相关的测试项中,经常需要快速创建大文件以便抢占磁盘剩余空间。

历史攻略:

Liunx:核实文件数量和大小

Linux:以K、M、G查看文件大小;

创建大文件的三种命令:

1、dd

2、truncate

3、fallocate

联系与区别:

## dd
dd 命令用于复制和转换文件。它最常见的用途是创建实时 Linux USB。
实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,
该命令将需要一些时间才能完成。
案例:可以使用 bs=1M 和 count=1024 来获得 1024 Mb 的文件。
dd if=/dev/zero of=myfile-01.img bs=2G count=1

## truncate
truncate 命令将一个文件缩小或者扩展到所需大小。
使用 -s 选项来指定文件的大小。
案例:truncate -s 2G myfile-02.img

## fallocate
fallocate 命令,比较推荐的创建大文件的方法,
因为它创建大文件的速度是最快的。
案例:fallocate -l 2G myfile-03.img

结论:dd 和 truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。fallocate 命令则不会创建稀疏文件,而且它的速度更快,比较推荐使用 fallocate 创建大文件的原因。

案例源码:

(base) root@ci4vyvxi:/home/write-pro/test-mkfile# dd if=/dev/zero of=myfile-01.img bs=2G count=1
0+1 records in
0+1 records out
2147479552 bytes (2.1 GB, 2.0 GiB) copied, 3.35002 s, 641 MB/s
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# truncate -s 2G myfile-02.img
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# fallocate -l 2G myfile-03.img
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# ll
total 4194316
drwxr-xr-x  2 root root       4096 Jan  6 23:13 ./
drwxr-xr-x 15 root root       4096 Jan  6 00:26 ../
-rw-r--r--  1 root root 2147479552 Jan  6 23:12 myfile-01.img
-rw-r--r--  1 root root 2147483648 Jan  6 23:12 myfile-02.img
-rw-r--r--  1 root root 2147483648 Jan  6 23:13 myfile-03.img
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# 
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# ls -l --block-size=G
total 5G
-rw-r--r-- 1 root root 2G Jan  6 23:12 myfile-01.img
-rw-r--r-- 1 root root 2G Jan  6 23:12 myfile-02.img
-rw-r--r-- 1 root root 2G Jan  6 23:13 myfile-03.img

创建前:剩余14G

(base) root@ci4vyvxi:/home/write-pro/test-mkfile# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  1.5M  1.6G   1% /run
/dev/vda3        36G   20G   14G  59% /

创建后:No space left on device

(base) root@ci4vyvxi:/home/write-pro/test-mkfile# fallocate -l 15G myfile-03.img
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# fallocate -l 15G myfile-04.img
fallocate: fallocate failed: No space left on device
(base) root@ci4vyvxi:/home/write-pro/test-mkfile# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  1.5M  1.6G   1% /run
/dev/vda3        36G   36G     0 100% /

即:可通过快速创建大文件,来填充磁盘剩余空间,进而测试因磁盘不足所需要测的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值