[英]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.