我想测试内容application/x-gzip
大小从100 MB到999 MB不等的文件的上传。
如何创建.gz
这些预定大小的文件?如果我这样做dd if=/dev/zero of=somefile bs=1 seek=100
,则压缩后的结果文件通常很小。
我想测试内容application/x-gzip
大小从100 MB到999 MB不等的文件的上传。
如何创建.gz
这些预定大小的文件?如果我这样做dd if=/dev/zero of=somefile bs=1 seek=100
,则压缩后的结果文件通常很小。
Answers:
您可以创建一个10MB的gzip文件,如下所示:
head -c 10M /dev/urandom | gzip -1 >10m.gz
这用于urandom
获取高熵的字节流:由于这是不可压缩的,因此压缩后的版本将与输入的大小大致相同。
然后,您可以将gzip文件的副本分类在一起:
cat $(perl -e "print '10m.gz ' x 30") >300m.gz
源文件的30个副本将约为300MB,而100个副本将约为1 GB。
这是另一种方法。您可以通过控制循环变量来创建文件filecount
。这将创建大小介于100MB到900 MB之间的随机文件并gzip
对其进行处理。
#!/bin/bash
filecount=0
while [ $filecount -lt 10 ]
do
filesize=$((RANDOM%9+1))
filesize=$(($filesize*104857600))
</dev/urandom head -c "$filesize" | gzip > /tmp/file${filecount}.$RANDOM.gz
((filecount++))
done
base64
可压缩约25%;我建议跳过base64位并直接调用head /dev/urandom
。