回答:
はい、両方ともすべての入力を受け入れて破棄しますが、出力は同じではありません。
/dev/null出力を生成しません。/dev/zeroNULL(ゼロ値)バイトの連続ストリームを生成します。とを実行する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 ダミーファイルまたはスワップの作成に使用されます。
次もご覧ください:
mmapping /dev/zerowith MAP_PRIVATEは、匿名メモリマッピングを取得するための「ポータブル」な方法です(のような拡張機能がない場合MAP_ANON)。
/dev/null 出力を生成しません:それはすぐにEOF信号。
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero*逃げる*