Ich wollte eine 1-GB-Zufallsdatei erstellen und habe den folgenden Befehl verwendet.
dd if=/dev/urandom of=output bs=1G count=1
Stattdessen erhalte ich jedes Mal, wenn ich diesen Befehl starte, eine 32-MB-Datei:
<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
Was ist falsch?
BEARBEITEN:
Dank großartiger Antworten in diesem Thema kam ich mit einer Lösung, die 32 Chunks mit einer Größe von 32 MB liest und 1 GB ergibt:
dd if=/dev/urandom of=output bs=32M count=32
Es wurde eine andere Lösung angegeben, die 1 GB direkt in den Speicher liest und dann auf die Festplatte schreibt. Diese Lösung benötigt viel Speicher und wird daher nicht bevorzugt:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
kann diese Aufgabe nicht ohne die -c
Option ausführen , die nicht in POSIX enthalten ist . Ich kenne keine Version, cat
die das lösen kann. rsync
ist ein völlig anderes Dienstprogramm. Das ist weder hier noch dort; Beim Durchblättern der Manpage sehe ich auch keine Möglichkeit, dieses Problem zu lösen.
/dev/urandom
ist es auch nicht in POSIX ...
dd
. Ich würde verwendenhead
,cat
oderrsync
an seiner Stelle fast immer. Und Ihre Frage, ob einer der Gründe, warum die Alternativen in der Regel sicherer sind.