Szukam polecenia do utworzenia wielu (tysięcy) plików zawierających co najmniej 1 KB losowych danych.
Na przykład,
Name size
file1.01 2K
file2.02 3K
file3.03 5K
etc.
Jak mogę utworzyć wiele takich plików?
shell-script
files
João José
źródło
źródło
Odpowiedzi:
Ponieważ nie masz żadnych innych wymagań, coś takiego powinno działać:
(wymaga to
bash
przynajmniej{1..1000}
).źródło
bash
z wielu powodów, w tym$((…))
i$RANDOM
. Nawet$(…)
może nie istnieć w każdej powłoce.bash
ani nie pochodzi odbash
({1..1000}
pochodzi zzsh
,for n in...; done
a zmienna ekspansja pochodzi z powłoki Bourne'a$(...)
,$((...))
i$RANDOM
chodź ksh). Funkcje, które nie są POSIX{1..1000}
,$RANDOM
oraz/dev/urandom
."%04d"
w takim przypadkubash
lubzsh
możesz zrobić{0001..1000}
bezprintf
Odmiana z
seq
,xargs
,dd
ishuf
:Wyjaśnienie zgodnie z żądaniem dla komentarzy:
seq -w 1 10
wypisuje ciąg liczb od 01 do 10xargs -n1 -I%
wykonuje poleceniash -c 'dd ... % ...'
dla każdej liczby sekwencji zastępując % z niądd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024
tworzy pliki podawane z / dev / urandom z 1024 blokami o rozmiarze blokushuf -i1-10 -n1
losowa wartość od 1 do 10źródło
Możesz zrobić coś takiego:
źródło
Korzysta z jednego potoku i wydaje się dość szybki, ale ma ograniczenie polegające na tym, że wszystkie pliki mają ten sam rozmiar
Objaśnienie: Użyj dd, aby utworzyć 10240 * 1024 bajtów danych; podzielić to na 10240 osobnych plików o wielkości 1k każdy (nazwy będą się zaczynać od „file.aaaa” do „file.zzzz”)
źródło