Jak mogę utworzyć nowy plik i wypełnić go losowymi danymi o wartości 1 gigabajta? Potrzebuję tego do przetestowania oprogramowania.
Wolałbym użyć /dev/random
lub /dev/urandom
.
Jak mogę utworzyć nowy plik i wypełnić go losowymi danymi o wartości 1 gigabajta? Potrzebuję tego do przetestowania oprogramowania.
Wolałbym użyć /dev/random
lub /dev/urandom
.
Odpowiedzi:
W większości jednorożców:
head -c 1G </dev/urandom >myfile
Jeśli head
nie rozumiesz G
przyrostka, możesz podać rozmiar w bajtach:
head -c 1073741824 </dev/urandom >myfile
Jeśli head
nie rozumiesz tej -c
opcji (jest to powszechne, ale nie POSIX; prawdopodobnie masz OpenBSD):
dd bs=1024 count=1048576 </dev/urandom >myfile
head
nie rozumiem -c
na moim komputerze z systemem Solaris 10.
head
można przeczytać /dev/urandom
, ale tail
nie można.
tail
najpierw próbuje przejść do końca pliku wejściowego, co trwa wiecznie (dosłownie).
/dev/zero
również, jeśli nie lubisz różnorodności.
Zakładając, że dane pseudolosowe są wystarczające, dd if=/dev/urandom of=target-file bs=1M count=1000
zrobisz to, co chcesz.
dd (1) odczytuje bloki danych z pliku wejściowego i zapisuje je do pliku wyjściowego. Język wiersza poleceń jest nieco dziwaczny, ale jest to jedno z tych naprawdę przydatnych narzędzi, które warto opanować.
W tym przypadku if
plik wejściowy, plik of
wyjściowy, bs
ma „rozmiar bloku” - i użyłem rozszerzenia GNU, aby ustawić wygodniej rozmiar. (Możesz również użyć 1048576, jeśli dd
nie masz rozszerzenia GNU.) count
To liczba bloków do odczytu if
i zapisu of
.
/dev/urandom
jest lepszym wyborem niż /dev/random
w Linuksie, ponieważ powróci do silnych pseudolosowych danych zamiast blokować, gdy wyczerpią się prawdziwie losowe dane.
Możesz także spojrzeć na http://www.random.org/ jako kolejną ścieżkę do zdobywania losowych danych bez konieczności ich generowania.
1M
nie są dostępne w każdym standardowym dd
wariancie. Jeśli dotyczy to Twojej wersji dd
, użyj bs=1048576
.
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee 5000kb
Wykorzystano go do wygenerowania 5 MB danych losowych znaków. Jeśli potrzebujesz innego rozmiaru, zmień -c
wartość head, zmień nazwę pliku wyjściowego, uruchom i poczekaj, aż wykonanie się zakończy.
vi
zvi -w randomfile
i poprosić kogoś, kto nigdy nie widziałvi
, aby wyjść z programu. ;)