我想创建一个充满零和随机值的大文件 ~10G。我试过使用:
dd if=/dev/urandom of=10Gfile bs=5G count=10
Run Code Online (Sandbox Code Playgroud)
它创建一个大约 2Gb 的文件并以退出状态“0”退出。我不明白为什么?
我还尝试使用以下方法创建文件:
head -c 10G </dev/urandom >myfile
Run Code Online (Sandbox Code Playgroud)
创建它大约需要 28-30 分钟。但我希望它创建得更快。有人有解决方案吗?
此外,我希望创建多个具有相同(伪)随机模式的文件进行比较。有谁知道这样做的方法吗?
Col*_*ing 18
使用 fallocate 怎么样,这个工具允许我们为文件预分配空间(如果文件系统支持这个特性)。例如,将 5GB 的数据分配给名为“example”的文件,可以这样做:
fallocate -l 5G example
Run Code Online (Sandbox Code Playgroud)
这比 dd 快得多,并且会非常迅速地分配空间。
xia*_*jie 12
您可以使用dd来创建仅由零组成的文件。例子:
dd if=/dev/zero of=zeros.img count=1 bs=1 seek=$((10 * 1024 * 1024 * 1024 - 1))
Run Code Online (Sandbox Code Playgroud)
这非常快,因为只有一个字节真正写入物理磁盘。但是,某些文件系统不支持此功能。
如果要创建包含伪随机内容的文件,请运行:
dd if=/dev/urandom of=random.img count=1024 bs=10M
Run Code Online (Sandbox Code Playgroud)
我建议您使用 10M 作为缓冲区大小 ( bs)。这是因为 10M 并不太大,但它仍然为您提供了一个很好的缓冲区大小。它应该很快,但它始终取决于您的磁盘速度和处理能力。
使用 dd,这应该创建一个填充随机数据的 10 GB 文件:
dd if=/dev/urandom of=test1 bs=1M count=10240
Run Code Online (Sandbox Code Playgroud)
count 以兆字节为单位。
来源:stackoverflow - 如何在 Linux 中创建具有给定大小的文件?