Ich suche nach einem Befehl, um mehrere (Tausende von) Dateien mit mindestens 1 KB zufälligen Daten zu erstellen.
Beispielsweise,
Name size
file1.01 2K
file2.02 3K
file3.03 5K
etc.
Wie kann ich so viele Dateien erstellen?
shell-script
files
João José
quelle
quelle
Antworten:
Da Sie keine weiteren Anforderungen haben, sollte Folgendes funktionieren:
(das braucht man
bash
zumindest für{1..1000}
).quelle
bash
aus zahlreichen Gründen, einschließlich$((…))
und$RANDOM
. Auch$(…)
könnte nicht in jeder Schale vorhanden sein.bash
auch nicht von diesenbash
({1..1000}
kommt vonzsh
,for n in...; done
und die variable Erweiterung kommt von der Bourne-Shell$(...)
,$((...))
und$RANDOM
kommt von ksh). Die Funktionen, die nicht POSIX sind{1..1000}
, sind$RANDOM
und/dev/urandom
."%04d"
in diesem Fallbash
oderzsh
können{0001..1000}
mit noprintf
Eine Variante mit
seq
,xargs
, ,dd
undshuf
:Erklärung wie per Kommentar angefordert:
seq -w 1 10
druckt eine Zahlenfolge von 01 bis 10xargs -n1 -I%
Führt den Befehlsh -c 'dd ... % ...'
für jede Sequenznummer aus und ersetzt das % durch diesedd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024
Erstellt die aus / dev / urandom gespeisten Dateien mit 1024 Blöcken mit einer Blockgröße vonshuf -i1-10 -n1
ein zufälliger Wert von 1 bis 10quelle
Sie können so etwas tun:
quelle
Dies verwendet eine einzelne Pipeline und scheint ziemlich schnell zu sein, hat jedoch die Einschränkung, dass alle Dateien die gleiche Größe haben
Erläuterung: Verwenden Sie dd, um 10240 * 1024 Datenbytes zu erstellen. Teilen Sie das in 10240 separate Dateien mit jeweils 1 KB auf (die Namen werden von 'file.aaaa' bis 'file.zzzz' ausgeführt).
quelle