Devices
何時強制使用 /dev/zero 而不是 /dev/null 用於寫入/丟棄目的?
根據
FHS
關於/dev
:它包含:
The following devices must exist under /dev. /dev/null All data written to this device is discarded. A read from this device will return an EOF condition. /dev/zero This device is a source of zeroed out data. All data written to this device is discarded. A read from this device will return as many bytes containing the value zero as was requested. ...
觀察兩者都有:
All data written to this device is discarded
/dev/null
我閱讀了許多總是用來丟棄數據的教程。但是因為兩者的寫作目的相同(丟棄)問題
- 何時強制使用
/dev/zero
寫入/dev/null
/丟棄目的?順便說一句,其他差異 - 實際上主要是關於閱讀- 我們有:
如果您使用的是 Linux,則永遠不會“強制”重定向到
/dev/null
而不是/dev/zero
. 正如您所注意到的,無論哪種方式,您都會得到相同的結果。也就是說,
/dev/null
如果要丟棄數據,則應始終重定向到。因為每個人都明白寫入/dev/null
意味著丟棄數據;它在表達你的意圖。另一方面,寫入
/dev/zero
也會丟掉你的數據,但是這並不是你正在嘗試做的事情。除此之外,我會擔心是否
/dev/zero
允許在其他 Unices 上寫入,例如 BSD 等。我認為/dev/zero
POSIX 甚至不需要,而/dev/null
is . 因此,將/dev/null
其用於預期目的是最大的可移植性;做任何其他事情都是犧牲可移植性而沒有任何收穫。