Jak mohu vytvořit nový soubor a vyplnit jej náhodnými daty v hodnotě 1 Gigabyte? Potřebuji to, abych otestoval nějaký software.
Raději bych použil /dev/random
nebo /dev/urandom
.
Ve většině odvětví:
head -c 1G </dev/urandom >myfile
Pokud vaše head
nerozumí příponě G
, můžete zadat velikost v bajtech:
head -c 1073741824 </dev/urandom >myfile
Pokud váš head
nerozumí -c
option (je to běžné, ale nikoli POSIX; pravděpodobně máte OpenBSD):
dd bs=1024 count=1048576 </dev/urandom >myfile
Za předpokladu, že pseudonáhodná data jsou dostatečná, dd if=/dev/urandom of=target-file bs=1M count=1000
Udělá, co chcete.
dd (1) načte bloky dat ze vstupního souboru a zapíše je do výstupního souboru. Jazyk příkazového řádku je trochu nepředvídatelný, ale je to jeden z těch opravdu užitečných nástrojů, které stojí za zvládnutí základů.
V tomto případě if
je vstupní soubor, of
je výstupní soubor, bs
je "velikost bloku" - a použil jsem rozšíření GNU rozšíření) (Chcete-li velikost nastavit pohodlněji. (Můžete také použít 1048576, pokud vaše dd
nemá příponu GNU).) count
je počet bloků, do kterých čtení z if
a zápis do of
.
/dev/urandom
Je lepší volbou než /dev/random
, Protože v Linuxu se v případě vyčerpání skutečně náhodných dat vrátí zpět k silným pseudonáhodným datům, než k blokování.
Můžete také chtít podívat na http://www.random.org/ jako další cestu k získání náhodných dat, aniž byste je museli sami generovat.
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee 5000kb
Slouží ke generování 5MB náhodných znaků. Pokud potřebujete jinou velikost, změňte -c
value of head, změňte název outfile, spusťte a vyčkejte, dokud se provedení nedokončí.