创建许多包含随机内容的文件

创建许多包含随机内容的文件

我正在寻找一个命令来创建包含至少 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

seq与、xargsdd的变体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打印一系列数字0110

xargs -n1 -I%为每个序列号执行命令sh -c 'dd ... % ...',替换%用它

dd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024创建来自的文件/dev/urandom1024块大小为

shuf -i1-10 -n1一个随机值110

答案3

这使用单个管道,看起来相当快,但有一个限制,即所有文件的大小相同

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

说明:使用dd创建10240*1024字节的数据;将其拆分为 10240 个单独的文件,每个文件大小为 1k(名称将从“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

相关内容