Quería producir un archivo aleatorio de 1 GB, así que utilicé el siguiente comando.
dd if=/dev/urandom of=output bs=1G count=1
Pero cada vez que ejecuto este comando obtengo un archivo de 32 MB:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
¿Qué está mal?
EDITAR:
Gracias a las excelentes respuestas en este tema, llegué con una solución que lee 32 fragmentos de 32 MB de tamaño, lo que hace que 1 GB:
dd if=/dev/urandom of=output bs=32M count=32
Se dio otra solución que lee 1 GB directamente en la memoria y luego escribe en el disco. Esta solución toma mucha memoria, por lo que no se prefiere:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
no puede hacer esta tarea sin la -c
opción que no está en POSIX . No conozco ninguna versión cat
que pueda resolver esto. rsync
Es una utilidad completamente no estándar. Eso no está ni aquí ni allá; hojeando su página de manual, tampoco veo cómo puede resolver este problema.
/dev/urandom
tampoco está en POSIX ...
dd
en absoluto. Yo usaríahead
,cat
orsync
en su lugar casi siempre. Y su pregunta es una de las razones por las cuales las alternativas son generalmente más seguras.