Crea una serie de archivos cada vez más grandes

Crea una serie de archivos cada vez más grandes

Necesito probar un host sftp para determinar su límite de carga de tamaño de archivo. Quería hacer una serie de archivos que fueran de tamaños cada vez más grandes, para intentar subirlos todos y ver dónde fallaban.

Lo estaba haciendo for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ; , pero me estaba tomando demasiado tiempo y los archivos que estaba obteniendo comenzaban en 10K, llegaban a 11K, 12K, etc. Quiero que el tamaño aumente en incrementos más grandes.

¿Cómo se puede crear una serie de archivos que no tengan una diferencia de tamaño tan fina? Creo que el límite está entre 0 y 1 MB.

Respuesta1

De dd(1):

bs=BYTES

/.../

BLOQUES y BYTES pueden ir seguidos de los siguientes sufijos multiplicativos: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024

Alternativamente, si tienes una versión reciente de bash, la {}construcción también toma un parámetro de paso:

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

Respuesta2

Para fines académicos, esto le daría a un comando 1k archivos de entrada en incrementos de 1024 bytes al agregarlos al mismo archivo.

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

Pero… ¿prueba y error? Encontraría una mejor manera.

información relacionada