Estoy buscando un comando para crear múltiples (miles de) archivos que contengan al menos 1 KB de datos aleatorios.
Por ejemplo,
Name size
file1.01 2K
file2.02 3K
file3.03 5K
etc.
¿Cómo puedo crear muchos archivos como este?
shell-script
files
João José
fuente
fuente
Respuestas:
Como no tiene otros requisitos, algo como esto debería funcionar:
(Esto necesita
bash
al menos para{1..1000}
).fuente
bash
por numerosas razones, incluyendo$((…))
y$RANDOM
. Incluso$(…)
podría no existir en cada caparazón.bash
ni se originó enbash
({1..1000}
proviene dezsh
,for n in...; done
y la expansión variable proviene del shell Bourne$(...)
,$((...))
y$RANDOM
viene ksh). Las características que no son POSIX son{1..1000}
,$RANDOM
y/dev/urandom
."%04d"
en ese casobash
ozsh
puede hacerlo{0001..1000}
sinprintf
Una variación con
seq
,xargs
,dd
yshuf
:Explicación según lo solicitado por comentarios:
seq -w 1 10
imprime una secuencia de números del 01 al 10xargs -n1 -I%
ejecuta el comandosh -c 'dd ... % ...'
para cada número de secuencia reemplazando el % con éldd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024
crea los archivos alimentados desde / dev / urandom con 1024 bloques con un tamaño de bloque deshuf -i1-10 -n1
un valor aleatorio de 1 a 10fuente
Puedes hacer algo como esto:
fuente
Esto usa una sola tubería y parece bastante rápido, pero tiene la limitación de que todos los archivos son del mismo tamaño
Explicación: Use dd para crear 10240 * 1024 bytes de datos; divídalo en 10240 archivos separados de 1k cada uno (los nombres se ejecutarán desde 'file.aaaa' hasta 'file.zzzz')
fuente