Answers:
由于您没有任何其他要求,因此应该可以执行以下操作:
#! /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。甚至$(…)可能并不存在于每个 shell中。
bash他们也没有起源于bash ({1..1000}来自zsh,for n in...; done和变量扩展来自Bourne shell的$(...),$((...))和$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 10打印从01到10的数字序列
xargs -n1 -I%执行该命令sh -c 'dd ... % ...'用于更换每个序列号%与它
dd if=/dev/urandom of=file.% bs=$(shuf ...) count=1024用1024个块创建从/ dev / urandom馈入的文件,块大小为
shuf -i1-10 -n1从1到10的随机值