Создайте серию файлов все большего размера

Создайте серию файлов все большего размера

Мне нужно протестировать хост sftp на предмет его ограничения размера файла для загрузки. Я хотел создать серию файлов, которые были бы все большего размера, чтобы попытаться загрузить их все и посмотреть, где они терпят неудачу.

Я делал это for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ; , но это занимало слишком много времени, а файлы, которые я получал, начинались с 10 КБ, затем увеличивались до 11 КБ, 12 КБ и т. д. Я хочу, чтобы размер увеличивался с большими приращениями.

Как можно создать серию файлов, которые не будут иметь столь мелкозернистой разницы в размере? Я думаю, что предел составляет от 0 до 1 МБ.

решение1

От dd(1):

bs=БАЙТЫ

/.../

За БЛОКАМИ и БАЙТАМИ могут следовать следующие мультипликативные суффиксы: c =1, w =2, b =512, кБ =1000, К =1024, МБ =1000*1000, М =1024*1024

В качестве альтернативы, если у вас установлена ​​последняя версия bash, {}конструкция также принимает параметр шага:

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

решение2

Для академических целей это даст команду 1k входных файлов с шагом 1024 байта путем добавления к тому же файлу.

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

Но... методом проб и ошибок? Я бы нашел способ получше.

Связанный контент