2013-04-14 26 views
2

我一直在使用dd if=/dev/random of=<file_name> bs=XX count=XX來創建隨機數據的單個文件。但我想知道如何一次創建多個文件。說5,10或80,000。我需要做一些帶寬測試,需要獨特的數據。以上代碼適用於1或2個文件。我的編程(Python)和終端技能仍然非常小。如何創建多個隨機數據文件?

任何幫助都會很棒。

回答

3

人分裂。

Split根據文件大小或行數將文件或標準輸入分割爲多個文件。但它並不是「一次」或同時發生的。

dd if=/dev/random bs=1 count=10 | split -b 2產生5個文件xaa,xab..xae,每個文件包含2個字節。

+0

優秀。我不太喜歡需要分割多少個字節的文件,但它工作得很好。如果有更好的理由可以通過,那麼我將分割大小高達數百GB的文件。但如果沒有,我會管理。謝謝! – user2279887

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-* 

[email protected] 1 mark staff 100000000 19 Dec 11:52 random-0 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-1 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-2 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-3 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-4 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-5 
[email protected] 1 mark staff 100000000 19 Dec 11:52 random-6 
[email protected] 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 

最簡單的方式,在我看來,在OSX上安裝parallel的是從the homebrew website得到homebrew,然後你要做的就是:

brew install parallel