if=
no es necesario, puede canalizar algo en dd
en cambio:
something... | dd of=sample.txt bs=1G count=1
No sería útil aquí desde openssl rand
requiere especificar el número de bytes de todos modos. Así que en realidad no necesitas dd
– esto funcionaría:
openssl rand -out sample.txt -base64 $(( 2**30 * 3/4 ))
1 gigabyte suele ser 2 bytes (aunque puede usar 10**9
por 10 bytes en su lugar). El * 3/4
cuenta parte de la sobrecarga de Base64, lo que hace que el codificado salida 1 GB.
Alternativamente, podría usar /dev/urandom
, pero sería un poco más lento que OpenSSL:
dd if=/dev/urandom of=sample.txt bs=1G count=1
Personalmente, usaría bs=64M count=16
o similar:
dd if=/dev/urandom of=sample.txt bs=64M count=16
Cree un archivo de contenido aleatorio de 1GB.bin:
dd if=/dev/urandom of=1GB.bin bs=64M count=16 iflag=fullblock
Si desea EXACTAMENTE 1 GB, puede usar lo siguiente:
openssl rand -out $testfile -base64 792917038; truncar -s-1 $archivo de prueba
El comando openssl hace que un archivo sea exactamente 1 byte demasiado grande. El comando truncar recorta ese byte.