繁体   English   中英

如何用1的文件“归零”

[英]How to “zero” a file with 1's

我经常会用一些技巧创建一个特定大小的文件

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

在dd之后在该位置添加另一个命令。

sed 's/0/1/g' file.txt

它将全部0替换为1。

可能是一个更好的解决方案,但是应该可以:-)

编辑:实际上,您实际上必须将结果从管道传输到新文件或替换相同文件。 sed默认情况下会打印到屏幕(IIRC)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM