我经常使用像
这样的技巧创建一个特定大小的文件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或随机怎么办?
答案 0 :(得分:2)
对于随机数据,几乎在所有情况下都使用/dev/urandom
。 (你也可以使用/dev/random
,但速度要慢得多,因为它是熵限制的。urandom
是一个自我种子来自random
的PRNG。)
对于非零文件,我建议这样的事情:
perl -e 'print chr(0xff) x 1000' > t
显然,定制0xff和1000来品尝。
答案 1 :(得分:1)
这大约是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
答案 2 :(得分:-2)
在你的dd之后在那里添加另一个命令。
sed 's/0/1/g' file.txt
它将用1替换所有0。
可能是一个更好的解决方案,但这应该有效:-)
编辑:您实际上必须将结果从新文件传输到新文件或替换相同的文件。 sed默认打印到屏幕(IIRC)