Für das, was es wert ist, headnicht -cauf meinem Solaris 10-Rechner zu verstehen .
Rahmu
2
Interessant, dass headlesen kann /dev/urandom, aber tailnicht.
Stefan Lasiewski
22
@StefanLasiewski tailversucht zunächst, an das Ende der Eingabedatei zu gelangen, was (im wahrsten Sinne des Wortes) ewig dauert.
Gilles
Ah, wie "tail / dev / infinity", wenn es so ein Gerät gäbe.
Stefan Lasiewski
3
@StefanLasiewski Das hast du /dev/zeroauch, wenn du keine Abwechslung magst .
Gilles
35
Vorausgesetzt, dass pseudozufällige Daten ausreichen, dd if=/dev/urandom of=target-file bs=1M count=1000werden Sie tun, was Sie wollen.
dd (1) liest Datenblöcke aus einer Eingabedatei und schreibt sie in eine Ausgabedatei. Die Kommandozeilensprache ist etwas schrullig, aber sie ist eines der wirklich nützlichen Werkzeuge, deren Erlernen es sich lohnt, die Grundlagen zu beherrschen.
In diesem Fall ifist die Eingabedatei, ofdie Ausgabedatei, bsdie "Blockgröße" - und ich habe die GNU-Erweiterung verwendet, um die Größe bequemer einzustellen. (Sie können auch 1048576 verwenden, wenn Sie ddkeine GNU-Erweiterung haben.) countDie Anzahl der Blöcke, aus denen gelesen ifund in die geschrieben werden soll of.
/dev/urandomist eine bessere Wahl als, /dev/randomweil es unter Linux auf starke pseudozufällige Daten zurückgreift und nicht blockiert, wenn wirklich zufällige Daten erschöpft sind.
Möglicherweise möchten Sie auch http://www.random.org/ als einen anderen Weg betrachten, um zufällige Daten abzurufen, ohne sie selbst generieren zu müssen.
Eine Note - Unit - Spezifikation wie 1Mgibt es nicht in jeder Standardvariante dd. Wenn Ihre Version von ddbetroffen ist, verwenden Sie bs=1048576.
Chris Down
4
Mit dem Beispielbefehl wird eine Datei mit einer Anzahl von 1.000.000 Blöcken mit einer Größe von jeweils 1 MB erstellt. Das ist ungefähr 1 TB (1M x 1MB), nicht 1 GB (das wäre 1K x 1MB). Bis zu einem gewissen Punkt führt das Erhöhen der Blockgröße und das Verringern der Blockanzahl zu einem besseren Durchsatz für eine gegebene Menge von Ausgabedaten.
ein Lebenslauf vom
2
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee 5000kb
Wird verwendet, um 5 MB zufällige Zeichendaten zu generieren. Wenn Sie eine andere Größe benötigen, ändern Sie den -cWert von head, ändern Sie den Outfile-Namen, führen Sie aus und warten Sie, bis die Ausführung abgeschlossen ist.
vi
mitvi -w randomfile
und bitten Sie jemanden, der noch nie gesehen hatvi
, das Programm zu beenden. ;)Antworten:
Auf den meisten Unices:
Wenn Sie
head
dasG
Suffix nicht verstehen , können Sie die Größe in Byte angeben:Wenn du
head
die-c
Option nicht verstehst (es ist üblich, aber nicht POSIX; du hast wahrscheinlich OpenBSD):Verwenden Sie nicht
/dev/random
unter Linux, verwenden Sie/dev/urandom
.quelle
head
nicht-c
auf meinem Solaris 10-Rechner zu verstehen .head
lesen kann/dev/urandom
, abertail
nicht.tail
versucht zunächst, an das Ende der Eingabedatei zu gelangen, was (im wahrsten Sinne des Wortes) ewig dauert./dev/zero
auch, wenn du keine Abwechslung magst .Vorausgesetzt, dass pseudozufällige Daten ausreichen,
dd if=/dev/urandom of=target-file bs=1M count=1000
werden Sie tun, was Sie wollen.dd (1) liest Datenblöcke aus einer Eingabedatei und schreibt sie in eine Ausgabedatei. Die Kommandozeilensprache ist etwas schrullig, aber sie ist eines der wirklich nützlichen Werkzeuge, deren Erlernen es sich lohnt, die Grundlagen zu beherrschen.
In diesem Fall
if
ist die Eingabedatei,of
die Ausgabedatei,bs
die "Blockgröße" - und ich habe die GNU-Erweiterung verwendet, um die Größe bequemer einzustellen. (Sie können auch 1048576 verwenden, wenn Siedd
keine GNU-Erweiterung haben.)count
Die Anzahl der Blöcke, aus denen gelesenif
und in die geschrieben werden sollof
./dev/urandom
ist eine bessere Wahl als,/dev/random
weil es unter Linux auf starke pseudozufällige Daten zurückgreift und nicht blockiert, wenn wirklich zufällige Daten erschöpft sind.Möglicherweise möchten Sie auch http://www.random.org/ als einen anderen Weg betrachten, um zufällige Daten abzurufen, ohne sie selbst generieren zu müssen.
quelle
1M
gibt es nicht in jeder Standardvariantedd
. Wenn Ihre Version vondd
betroffen ist, verwenden Siebs=1048576
.Wird verwendet, um 5 MB zufällige Zeichendaten zu generieren. Wenn Sie eine andere Größe benötigen, ändern Sie den
-c
Wert von head, ändern Sie den Outfile-Namen, führen Sie aus und warten Sie, bis die Ausführung abgeschlossen ist.quelle