回答:
はい、両方ともすべての入力を受け入れて破棄しますが、出力は同じではありません。
/dev/null
出力を生成しません。/dev/zero
NULL(ゼロ値)バイトの連続ストリームを生成します。とを実行するcat /dev/null
と、違いを確認できますcat /dev/zero
。
試してみるcat /dev/null > file
と、空のが見つかりますfile
。
次にcat /dev/zero > file
、ファイルのサイズ(watch -n 1 du -h file
)が継続的に増加するのを見て、を試してください。これは、からの読み取り/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
ダミーファイルまたはスワップの作成に使用されます。
次もご覧ください:
mmap
ping /dev/zero
with MAP_PRIVATE
は、匿名メモリマッピングを取得するための「ポータブル」な方法です(のような拡張機能がない場合MAP_ANON
)。
/dev/null
出力を生成しません:それはすぐにEOF信号。
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
*逃げる*