生成固定大小的隨機文件

近期有個需求,須要大量的文件,隨機生成10000個大小爲1K的文件:shell

seq 10000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1dom

此方法生成隨機文件的好處在於效率高(產生1G文件大概1s),建立的文件大小精確到字節,使用null字符來填充文件內容,文件統計時沒有行(wc -l filename爲0)code

固然能夠更爲/dev/zero/dev/random/dev/urandom, 缺點跟/dev/zero比固然是效率會更低些了,生成個
100Mb 的文件須要 10 秒左右,並且文件並無可讀的內容,通常的狀況基本上是知足了。it

seq 10000 | xargs -i dd if=/dev/random of={}.dat bs=1024 count=1io

但在 Mac 中執行上面的命令則報錯:效率

xargs: illegal option -- i
usage: xargs [-0opt] [-E eofstr] [-I replstr [-R replacements]] [-J replstr]
             [-L number] [-n number [-x]] [-P maxprocs] [-s size]
             [utility [argument ...]]

最後使用 shell 來實現:file

#!/bin/sh
for ((i=1; i<=10000; i++))
do
  dd if=/dev/random of=$i".txt" bs=1024 count=1024
done
相關文章
相關標籤/搜索