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