bac*_*i32 8 macos bash shell scripting
如何在OS X中使用随机数据创建多个文件(超过20k,我需要这些文件来运行syncy的测试)?我使用了之前回答的问题(如何创建多个随机数据文件?),建议使用类似的东西
dd if=/dev/random bs=1 count=40000 | split -b 2
Run Code Online (Sandbox Code Playgroud)
但是使用它会给我一个错误,说明文件太多.我可以创建一个循环来创建包含任意随机数据的文件吗?
Car*_*rum 18
你可以用shell for
循环来做到这一点:
for i in {1..20000}; do dd if=/dev/urandom bs=1 count=1 of=file$i; done
Run Code Online (Sandbox Code Playgroud)
调整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
Run Code Online (Sandbox Code Playgroud)
你的方法不起作用的原因是split
(2个字母字符)的默认后缀对于2万个文件来说不够大.如果添加几个选项:
dd if=/dev/random bs=1 count=40000 | split -b 2 -d -a 5
Run Code Online (Sandbox Code Playgroud)
(这-d
意味着"使用数字,而不是字母字符,后缀",-a 5
意思是"使用长度为5的后缀"),它应该工作正常 - 我/dev/urandom
在GNU/Linux机器上测试它(速度)没有问题.
请注意,这比其他答案的for-loop方法快得多(2.5秒对比Carl Norum在我的机器上的答案为43秒).
归档时间: |
|
查看次数: |
14109 次 |
最近记录: |