임의의 콘텐츠로 많은 파일 만들기

임의의 콘텐츠로 많은 파일 만들기

최소 1KB의 임의 데이터가 포함된 여러(수천 개의) 파일을 생성하는 명령을 찾고 있습니다.

예를 들어,

Name            size
file1.01        2K
file2.02        3K
file3.03        5K
etc.

그러한 파일을 많이 만드는 방법은 무엇입니까?

답변1

다른 요구 사항이 없으므로 다음이 작동합니다.

#! /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}).

답변2

seqAND, xargsAND 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 10일련의 숫자 인쇄01도착하다10

xargs -n1 -I%각 일련번호에 대해 명령을 실행하여 sh -c 'dd ... % ...'교체합니다.%그걸 써

dd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024다음에서 파일 생성/dev/urandom그리고1024블록 크기는

shuf -i1-10 -n1임의의 값1도착하다10

답변3

이는 단일 파이프를 사용하고 합리적으로 빠른 것처럼 보이지만 모든 파일의 크기가 동일하다는 제한이 있습니다.

dd if=/dev/urandom bs=1024 count=10240 | split -a 4 -b 1k - file.

설명: dd를 사용하여 10240*1024바이트의 데이터를 생성합니다. 이를 각각 1k 크기의 10240개 개별 파일로 분할합니다(이름은 "file.aaaa"에서 "file.zzzz"까지임).

답변4

다음을 수행할 수 있습니다.

#!/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

관련 정보