임의의 내용으로 많은 파일 만들기 size file1.01

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

예를 들어

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

이처럼 많은 파일을 어떻게 만들 수 있습니까?



답변

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

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


답변

와 변형 seq, xargs, ddshuf:

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


답변

이것은 단일 파이프 라인을 사용하고 상당히 빠르지 만 모든 파일의 크기가 동일하다는 제한이 있습니다.

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

설명 : dd를 사용하여 10240 * 1024 바이트의 데이터를 작성하십시오. 이 파일을 각각 1240 개의 10240 개의 개별 파일로 분할하십시오 (이름은 ‘file.aaaa’에서 ‘file.zzzz’까지 실행 됨)


답변