2

我一直在使用dd if=/dev/random of=<file_name> bs=XX count=XX创建随机数据的单个文件。但我想知道如何一次创建多个文件。说 5、10 或 80,000。我需要做一些带宽测试并且需要独特的数据。上面的代码适用于 1 或 2 个文件。我的编程(Python)和终端技能仍然很低。

任何帮助都是极好的。

4

2 回答 2

3

男人分裂。

Split根据文件大小或行数将文件或标准输入拆分为多个文件。它不会“一次”或同时发生。

dd if=/dev/random bs=1 count=10 | split -b 2生成 5 个文件 xaa,xab..xae,每个文件由 2 个字节组成。

于 2013-04-14T15:41:18.413 回答
1

我会用GNU Parallel这个。命令行语法非常直观和简洁,它可以并行完成所有工作,即 FAST,并使用 Mac 中所有可爱的 CPU 内核。

因此,要并行创建 8 个文件,每个文件 100MB,您可以在终端中键入:

$ parallel dd if=/dev/random of=random-{} bs=1000000 count=100 ::: {0..7}

您将在 60 秒后得到这 8 个文件:

$ ls -l random-*

-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-0
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-1
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-2
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-3
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-4
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-5
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-6
-rw-r--r--@ 1 mark  staff  100000000 19 Dec 11:52 random-7

或者,如果您想要一个 1kB 的文件、两个 64kB 的文件、一个 32kB 的文件和一个 128kB 的文件,您可以这样做:

$ parallel dd if=/dev/random of=random-{%} bs=1024 count={1} ::: 1 64 64 32 128

这会给你这个:

-rw-r--r--   1 mark  staff  131072 19 Dec 12:10 random-5
-rw-r--r--   1 mark  staff   32768 19 Dec 12:10 random-4
-rw-r--r--   1 mark  staff   65536 19 Dec 12:10 random-3
-rw-r--r--   1 mark  staff   65536 19 Dec 12:10 random-2
-rw-r--r--   1 mark  staff    1024 19 Dec 12:10 random-1

在我看来,parallel在 OSX 上安装最简单的方法是homebrewhomebrew website获取,然后你要做的就是:

brew install parallel
于 2015-12-19T12:01:41.263 回答