创建一系列越来越大的文件

创建一系列越来越大的文件

我需要测试 sftp 主机的文件大小上传限制。我想制作一系列越来越大的文件,尝试将它们全部上传并看看哪里失败了。

我正在这样做for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ; ,但这花了太长时间,而且我得到的文件从 10K 开始,到 11K、12K 等。我希望大小以更大的增量跳跃。

如何制作一系列文件不会有如此细粒度的大小差异?我认为限制在 0 到 1 MB 之间。

答案1

dd(1)

bs=字节

/.../

BLOCKS 和 BYTES 后面可以跟以下乘法后缀:c =1、w =2、b =512、kB =1000、K =1024、MB =1000*1000、M =1024*1024

或者,如果您有最新版本的 bash,该{}构造还采用一个步骤参数:

for i in {10000..100000..1000}; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done

答案2

出于学术目的,这将通过附加到同一文件来以 1024 字节为增量为命令提供 1k 个输入文件。

while ((++n<=1024)); do
    printf '\0%.s' {1..1024} >&3
    xxd -g 1 /dev/stdin; echo # sftp command here
done <<<'' 3>/dev/stdin

但是……反复试验?我会找到更好的方法。

相关内容