近期有個需求,須要大量的文件,隨機生成10000個大小爲1K的文件:shell
seq 10000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1
dom
此方法生成隨機文件的好處在於效率高(產生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=1
io
但在 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