Crie uma série de arquivos cada vez maiores

Crie uma série de arquivos cada vez maiores

Preciso testar um host sftp quanto ao limite de limite de upload do tamanho do arquivo. Eu queria fazer uma série de arquivos com tamanhos cada vez maiores, para tentar fazer o upload de todos e ver onde falhavam.

Eu estava fazendo isso for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ; , mas estava demorando muito, e os arquivos que eu estava recebendo começavam em 10K, indo para 11K, 12K, etc. Quero que o tamanho aumente em incrementos maiores.

Como criar uma série de arquivos que não tenham uma diferença de tamanho tão refinada? Estou pensando que o limite está entre 0 e 1 MB.

Responder1

De dd(1):

bs=BYTES

/.../

BLOCOS e BYTES podem ser seguidos pelos seguintes sufixos multiplicativos: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024

Alternativamente, se você tiver uma versão recente do bash, a {}construção também usa um parâmetro step:

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

Responder2

Para fins acadêmicos, isso daria a um comando 1k arquivos de entrada em incrementos de 1.024 bytes, anexando ao mesmo arquivo.

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

Mas... tentativa e erro? Eu encontraria uma maneira melhor.

informação relacionada