创建一个预定大小的 gzip 文件

Sen*_*ran 8 compression files

我想测试application/x-gzip从 100 MB 到 999 MB 的各种大小的内容类型文件的上传。

我该如何创建.gz这些预定大小的文件?如果我这样做dd if=/dev/zero of=somefile bs=1 seek=100,压缩后的结果文件通常非常小。

dha*_*hag 19

  • 您可以像这样创建一个 10MB 的 gzip 文件:

    head -c 10M /dev/urandom | gzip -1 >10m.gz
    
    Run Code Online (Sandbox Code Playgroud)

    这用于urandom获取高熵字节流:由于这是不可压缩的,因此 gzip 版本将与输入的大小大致相同。

  • 然后,您可以将 gzip 文件的副本连接在一起:

    cat $(perl -e "print '10m.gz ' x 30") >300m.gz
    
    Run Code Online (Sandbox Code Playgroud)

    源文件的 30 个副本大约为 300MB,100 个副本大约为 1GB。

  • 您能否将多个 gzip 文件连接起来并获得另一个带有连接数据的 gzip 文件?这似乎很狡猾。 (3认同)
  • 是的,您可以连接 gzip 文件。http://stackoverflow.com/questions/8005114/fast-concatenation-of-multiple-gzip-files (2认同)