Jeśli chodzi o to, co jest warte, headnie rozumiem -cna moim komputerze z systemem Solaris 10.
rahmu
2
Interesujące, że headmożna przeczytać /dev/urandom, ale tailnie można.
Stefan Lasiewski
21
@StefanLasiewski tailnajpierw próbuje przejść do końca pliku wejściowego, co trwa wiecznie (dosłownie).
Gilles
Ach, jak „tail / dev / infinity”, jeśli istnieje takie urządzenie.
Stefan Lasiewski
3
@StefanLasiewski Masz /dev/zerorównież, jeśli nie lubisz różnorodności.
Gilles
35
Zakładając, że dane pseudolosowe są wystarczające, dd if=/dev/urandom of=target-file bs=1M count=1000zrobisz 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 ifplik wejściowy, plik ofwyjściowy, bsma „rozmiar bloku” - i użyłem rozszerzenia GNU, aby ustawić wygodniej rozmiar. (Możesz również użyć 1048576, jeśli ddnie masz rozszerzenia GNU.) countTo liczba bloków do odczytu ifi zapisu of.
/dev/urandomjest lepszym wyborem niż /dev/randomw 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.
Uwaga - specyfikacje jednostek, takie jak, 1Mnie są dostępne w każdym standardowym ddwariancie. Jeśli dotyczy to Twojej wersji dd, użyj bs=1048576.
Chris Down,
4
Przykładowe polecenie utworzy plik z liczbą 1 000 000 bloków o rozmiarze 1 MB. To około 1 TB (1 M x 1 MB), a nie 1 GB (co byłoby 1 K x 1 MB). Nawiasem mówiąc, do pewnego momentu, zwiększenie rozmiaru bloku i zmniejszenie liczby bloków zwykle prowadzi do lepszej przepustowości dla danej ilości danych wyjściowych.
CVn
2
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ń -cwartość 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. ;)Odpowiedzi:
W większości jednorożców:
Jeśli
head
nie rozumieszG
przyrostka, możesz podać rozmiar w bajtach:Jeśli
head
nie rozumiesz tej-c
opcji (jest to powszechne, ale nie POSIX; prawdopodobnie masz OpenBSD):Nie używaj
/dev/random
w systemie Linux, użyj/dev/urandom
.źródło
head
nie rozumiem-c
na moim komputerze z systemem Solaris 10.head
można przeczytać/dev/urandom
, aletail
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, plikof
wyjściowy,bs
ma „rozmiar bloku” - i użyłem rozszerzenia GNU, aby ustawić wygodniej rozmiar. (Możesz również użyć 1048576, jeślidd
nie masz rozszerzenia GNU.)count
To liczba bloków do odczytuif
i zapisuof
./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.
źródło
1M
nie są dostępne w każdym standardowymdd
wariancie. Jeśli dotyczy to Twojej wersjidd
, użyjbs=1048576
.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.źródło