if=
non è richiesto, puoi reindirizzare qualcosa in dd
invece:
something... | dd of=sample.txt bs=1G count=1
Non sarebbe utile qui dal openssl rand
richiede comunque di specificare il numero di byte. Quindi in realtà non hai bisogno di dd
– questo funzionerebbe:
openssl rand -out sample.txt -base64 $(( 2**30 * 3/4 ))
1 gigabyte è di solito 2 byte (anche se puoi usare 10**9
invece per 10 byte). Il * 3/4
parte tiene conto dell'overhead Base64, rendendo il file codificato uscita 1 GB.
In alternativa, puoi usare /dev/urandom
, ma sarebbe un po' più lento di OpenSSL:
dd if=/dev/urandom of=sample.txt bs=1G count=1
Personalmente, userei bs=64M count=16
o simile:
dd if=/dev/urandom of=sample.txt bs=64M count=16
Crea un file di contenuto casuale da 1 GB.bin:
dd if=/dev/urandom of=1GB.bin bs=64M count=16 iflag=fullblock
Se desideri ESATTAMENTE 1 GB, puoi utilizzare quanto segue:
openssl rand -out $testfile -base64 792917038; truncate -s-1 $testfile
Il comando openssl rende un file esattamente 1 byte troppo grande. Il comando truncate elimina quel byte.