답변:
다른 요구 사항이 없으므로 다음과 같이 작동합니다.
#! /bin/bash
for n in {1..1000}; do
dd if=/dev/urandom of=file$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 ))
done
( bash적어도 필요 합니다 {1..1000}).
bash등 다양한 이유로 $((…))하고 $RANDOM. 심지어 $(…)존재하지 않을 수도 있습니다 모든 쉘.
bash않고 그들이에서 유래 않았다 bash ( {1..1000}에서 온다 zsh, for n in...; done및 변수 확장은 Bourne 쉘에서 유래 $(...), $((...))그리고 $RANDOM KSH 와서). POSIX를하지 않는 기능은 {1..1000}, $RANDOM하고 /dev/urandom.
"%04d"로하는 경우, bash또는 zsh할 수 {0001..1000}없음에printf
와 변형 seq, xargs, dd과 shuf:
seq -w 1 10 | xargs -n1 -I% sh -c 'dd if=/dev/urandom of=file.% bs=$(shuf -i1-10 -n1) count=1024'
의견에 따라 요청 된 설명 :
seq -w 1 1001 에서 10 까지 일련의 숫자를 인쇄합니다.
xargs -n1 -I%% 를 sh -c 'dd ... % ...'대체하는 각 시퀀스 번호에 대한 명령 을 실행합니다.
dd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024에서 feeded 파일 생성 은 / dev / urandom을 가진 1024 개 의 블록 크기 블록을
shuf -i1-10 -n11 에서 10 사이의 임의의 값
다음과 같이 할 수 있습니다 :
#!/bin/bash
filecount=0
while [ $filecount -lt 10000 ] ; do
filesize=$RANDOM
filesize=$(($filesize+1024))
base64 /dev/urandom |
head -c "$filesize" > /tmp/file${filecount}.$RANDOM
((filecount++))
done