如何用1来“归零”文件

时间:2010-06-04 19:20:26

标签: linux bash zero

我经常使用像

这样的技巧创建一个特定大小的文件
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或随机怎么办?

3 个答案:

答案 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)