如何在 OS X 中使用随机数据创建多个文件(超过 20k,我需要这些文件来运行同步测试)?我使用了一个先前回答的问题(如何创建多个随机数据文件?),建议使用类似的东西
dd if=/dev/random bs=1 count=40000 | split -b 2
但是使用它会给我一个错误,说文件太多。我可以创建一个循环来创建包含任何随机数据的文件吗?
如何在 OS X 中使用随机数据创建多个文件(超过 20k,我需要这些文件来运行同步测试)?我使用了一个先前回答的问题(如何创建多个随机数据文件?),建议使用类似的东西
dd if=/dev/random bs=1 count=40000 | split -b 2
但是使用它会给我一个错误,说文件太多。我可以创建一个循环来创建包含任何随机数据的文件吗?
你可以用一个shellfor
循环来做到这一点:
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
让它安静下来。
不确定您是否有任何文件命名要求,但也许是这样:
for x in {1..20000}; do
dd if=/dev/random of=test$x.dat bs=10000 count=4
done
您的方法不起作用的原因是split
(2 个字母字符)的默认后缀对于两万个文件来说不是足够大的命名空间。如果您添加几个选项:
dd if=/dev/random bs=1 count=40000 | split -b 2 -d -a 5
(其中-d
的意思是“后缀使用数字,而不是字母字符”,-a 5
意思是“使用长度为 5 的后缀”),它应该可以正常工作——我/dev/urandom
在 GNU/Linux 机器上用(为了速度)测试了它,没有问题。
请注意,这比其他答案的 for-loop 方法快得多(Carl Norum 在我的机器上的答案为 2.5 秒,而 43 秒)。