¿Cómo creo un archivo aleatorio de 1GB en Linux?

Pregunta:

Estoy usando el shell bash y me gustaría canalizar la salida del comando openssl rand -base64 1000 al comando dd como dd if={output of openssl} of="sample.txt bs=1G count=1 Creo Puedo usar variables pero no estoy seguro de cuál es la mejor manera de hacerlo. La razón por la que me gustaría crear el archivo es porque me gustaría un archivo de 1GB con texto aleatorio.

Respuesta:

if= no se requiere if= , puede canalizar algo en dd en su lugar:

something... | dd of=sample.txt bs=1G count=1

No sería útil aquí ya que openssl rand requiere especificar el número de bytes de todos modos. Entonces, en realidad, no necesita dd , esto funcionaría:

openssl rand -out sample.txt -base64 $(( 2**30 * 3/4 ))

1 gigabyte suele ser 2 30 bytes (aunque puede usar 10**9 para 10 9 bytes en su lugar). La parte * 3/4 representa la sobrecarga de Base64, lo que hace que la salida codificada sea de 1 GB.

Alternativamente, puede 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

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım