Je voulais produire un fichier aléatoire de 1 Go, alors j'ai utilisé la commande suivante.
dd if=/dev/urandom of=output bs=1G count=1
Mais chaque fois que je lance cette commande, je reçois un fichier de 32 Mo:
<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-ce qui ne va pas?
MODIFIER:
Merci à de bonnes réponses dans ce sujet, je suis venu avec une solution qui lit 32 morceaux de 32 Mo de large qui fait 1 Go:
dd if=/dev/urandom of=output bs=32M count=32
Une autre solution a été donnée qui lit 1 Go directement dans la mémoire, puis écrit sur le disque. Cette solution nécessite beaucoup de mémoire, elle n’est donc pas recommandée:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
ne peut pas effectuer cette tâche sans l' -c
option qui n'est pas dans POSIX . Je ne connais aucune version cat
qui puisse résoudre ce problème. rsync
est un utilitaire complètement non standard. Ce n'est ni ici ni là; En parcourant sa page de manuel, je ne vois pas non plus comment résoudre ce problème.
/dev/urandom
n'est pas non plus dans POSIX ...
dd
. Je utiliseraishead
,cat
oursync
à sa place presque toujours. Et votre question si l’une des raisons pour lesquelles les alternatives sont généralement plus sûres.