如何在OS X中使用随机数据创建多个文件(超过20k,我需要这些文件来运行syncy的测试)?我使用了之前回答的问题(How Can I Create Multiple Files of Random Data?)建议使用类似
的内容dd if=/dev/random bs=1 count=40000 | split -b 2
但是使用它会给我一个错误,说明文件太多。我可以用其他方式创建一个循环来创建包含任意随机数据的文件吗?
答案 0 :(得分:18)
您可以使用shell for
循环执行此操作:
for i in {1..20000}; do dd if=/dev/urandom bs=1 count=1 of=file$i; done
根据需要调整count
和bs
,以制作您关注的尺寸的文件。请注意,我更改为/dev/urandom
以防止阻止。
您也可以添加一些>/dev/null 2>&1
来安静下来。
答案 1 :(得分:5)
您的方法不起作用的原因是split
的默认后缀(2个字母字符)对于2万个文件来说不够大。如果添加几个选项:
dd if=/dev/random bs=1 count=40000 | split -b 2 -d -a 5
(其中-d
表示“使用数字,而不是字母字符,后缀”和-a 5
表示“使用长度为5的后缀”),它应该正常工作 - 我用{测试它在GNU / Linux机器上{1}}(为了速度)没有问题。
请注意,这比其他答案的for-loop方法快得多(2.5秒与Carl Norum在我的机器上的答案为43秒)。
答案 2 :(得分:4)
不确定您是否有任何文件命名要求,但可能是:
for x in {1..20000}; do
dd if=/dev/random of=test$x.dat bs=10000 count=4
done