if=
n'est pas obligatoire, vous pouvez diriger quelque chose vers dd
à la place :
something... | dd of=sample.txt bs=1G count=1
Cela ne serait pas utile ici depuis openssl rand
nécessite quand même de spécifier le nombre d'octets. Vous n'avez donc pas réellement besoin de dd
– ça fonctionnerait :
openssl rand -out sample.txt -base64 $(( 2**30 * 3/4 ))
1 gigaoctet correspond généralement à 2 octets (bien que vous puissiez utiliser 10**9
pour 10 octets à la place). Le * 3/4
la partie tient compte de la surcharge Base64, ce qui rend le encodé sortie 1 Go.
Alternativement, vous pouvez utiliser /dev/urandom
, mais ce serait un peu plus lent qu'OpenSSL :
dd if=/dev/urandom of=sample.txt bs=1G count=1
Personnellement, j'utiliserais bs=64M count=16
ou similaire :
dd if=/dev/urandom of=sample.txt bs=64M count=16
Créez un fichier de contenu aléatoire de 1 Go.bin :
dd if=/dev/urandom of=1GB.bin bs=64M count=16 iflag=fullblock
Si vous voulez EXACTEMENT 1 Go, vous pouvez utiliser ce qui suit :
openssl rand -out $testfile -base64 792917038; tronquer -s-1 $fichiertest
La commande openssl rend un fichier trop gros d'exactement 1 octet. La commande truncate supprime cet octet.