文件我經常會創建一個特定大小的文件一招類似如何「零」與1的
dd if=/dev/zero of=1gb.dd bs=1M count=1024
甚或
dd if=/dev/urandom of=1gb.dd bs=1M count=1024
dd if=/dev/random of=1gb.dd bs=1M count=1024
但是如果我想得到所有1,而不是0或隨機?
文件我經常會創建一個特定大小的文件一招類似如何「零」與1的
dd if=/dev/zero of=1gb.dd bs=1M count=1024
甚或
dd if=/dev/urandom of=1gb.dd bs=1M count=1024
dd if=/dev/random of=1gb.dd bs=1M count=1024
但是如果我想得到所有1,而不是0或隨機?
對於隨機數據,在幾乎所有情況下使用/dev/urandom
。 (您也可以使用/dev/random
,但這是非常非常慢,因爲它的熵結合urandom
是一個PRNG其自身的種子從random
。)
對於非零的文件,我建議是這樣的:
perl -e 'print chr(0xff) x 1000' > t
顯然,自定義0xff和1000的味道。
在dd後面添加另一個命令。
sed 's/0/1/g' file.txt
它將用1代替所有的0。
可能是一個更好的解決方案在那裏,但應該工作:-)
編輯:你居然要管的結果從進入任一新文件或替換同一文件。 SED打印默認屏幕(IIRC)
不知長sed如何將採取1GB的文件。 – DVK 2010-06-04 19:25:26
這是錯誤的。/dev/zero的所有位爲零(0x00)。您的sed命令正在查找ASCII 0數字(0x30)。 – 2010-06-04 19:28:13
這隻要dd if=/dev/zero
約需四次,但只是略微長於crazyscot的答案Perl的命令:
touch shred.out; yes $'\xff' | tr -d $'\n' | shred --random-source=/dev/stdin --size=1G --iterations=1 shred.out
有趣的是,類似的命令停止之前它得到1 GB:
yes $'\xff' | tr -d $'\n' | dd if=/dev/stdin of=1gb.dd bs=1M count=1024
+1爲了創造性:] – DRL 2010-06-07 10:56:17
'python -c「print chr(0x31)* 1000」> t' Samething only python flavored。 – zdav 2010-06-04 21:55:50