目录
在日常工作中,总会遇到各种各样的场景,要准备各种各样特征的测试数据。现在有一个场景,需要准备一个100M的大文件,你会怎么去实现呢?
一般拿到这类需求,首先会默认理解和业务相关联,针对这类情况的常规思路不外乎是:
-
如果业务侧有,请业务侧直接提供。
-
如果业务侧没有,便会基于业务文件特征通过 多个文件合并 或者 填充几张高清大图 / N多页的文本 来实现。
抛开业务特性,对到文件本身来说,除此之外呢,还有没有其他高效办法呢?答案肯定是有的,可以通过 命令行的模式来生成。
第一种:dd 命令
## 创建一个 2M 大小的文件
## 特殊设备文件除了 /dev/zero 还有 /dev/random、/dev/urandom
dd if=/dev/zero of=largefile.txt bs=1M count=2
dd if=/dev/random of=cc3.txt bs=1M count=2
## 复制文件内容,从 a 文件到 b 文件,
dd if=a.txt of=b.txt bs=1M
第二种:head 命令
## head 命令通常用于显示文件的开头部分,这里是非标准用法
## 102400 单位是字节
head -c 102400 /dev/urandom > largefile2.txt
第三种:truncate 命令
## truncate 命令是一个用于改变文件大小的命令行工具,比 dd 更快更高效
truncate -s 5M largefile3.txt
最后说明下,因为不同的操作系统环境,命令及实现可能存在些许不同,所以请以自身环境为主,寻找适用自身环境的命令。笔者这里是用 Mac 电脑完成的测试,这里有 2 点注意事项提醒下大家:
-
未提前创建好目标文件,通过命令行创建的文件,虽然文件类型正确,大小可达到,但是用常用的文档工具,比如 microsoft word、wps 等打不开,提示无法识别
-
已提前创建好的目标文件,通过命令行来完成大小的设置,这种情况下,大小可正常达到,且用常用的文档工具,是正常打开。
今日分享到这里就结束啦,大家可以去体验玩一玩,感受感受。欢迎一键三连,😄