Devices

/dev/null 和 /dev/zero 之間的區別

  • March 26, 2020

當嘗試重定向到/dev/nulland/dev/zero時,它的輸出被丟棄。似乎兩者都/dev/null接受/dev/zero並丟棄所有輸入。那麼,/dev/null和 和有什麼不一樣/dev/zero

是的,都接受和丟棄所有輸入,但它們的輸出不一樣:

  • /dev/null不產生任何輸出
  • /dev/zero產生一個連續的 NULL(零值)字節流

您可以通過執行cat /dev/nulland來查看差異cat /dev/zero

  • 試一試cat /dev/null > file,你會發現一個空的file.
  • 現在試試看cat /dev/zero > file,同時觀察文件的大小 ( watch -n 1 du -h file) 不斷增加。這是因為讀取 from/dev/zero會產生無窮無盡的\0(null) 字元流。

用於dd更恰當地視覺化差異:

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s
$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero用於創建虛擬文件或交換。

另請訪問:

引用自:https://unix.stackexchange.com/questions/254384