brand new note

ジャズ屋が技術の話をするところ

/dev/zeroってなんだ

/devはデバイスのdev。データの入出力装置に関する情報を管理しているディレクトリです。/dev/xxxという形でハードディスクやUSBメモリ等、様々なデバイスの情報を格納しています。

/dev/zeroとは

0x00を常に出力し続ける特殊なデバイスのことをさします。とりあえずダミーファイルを作りたい時や、ディスクを0x00で埋め尽くしてデータを消去したい時に用いることができます。一歩間違えると危険そうですね。。。なんか右下にありますね。

f:id:frazz:20180402145316p:plain

/dev/nullとの違い

0x00でデータを埋め尽くしてファイルを作るとファイルサイズがちゃんと0の分だけ存在してくれます。対して、null文字で埋め尽してファイルを作るとファイルサイズは0バイトになります。といってもよく分かんないのでやってみましょう。

f:id:frazz:20180402150555p:plain

検証にddコマンドを使います。bsはブロックサイズ、ifはinput file, ofはoutput fileの略だと思います(たぶん)。/dev/zeroを入力元としてtestファイルを錬成すると、ちゃんとファイルサイズが1000バイトになっていますね。moreで見てみると1000バイト分の空白があるのも確認できます。

次に/dev/nullから同じようにファイルを練成します。

f:id:frazz:20180402151210p:plain

1000バイトと指定してもファイルサイズは0バイトのtestファイルができてしまいました。これが「何もない」と「0がある」の違いです。データっておもしろい。今後何かに使えればいいのですが。。。

参考

qiita.com

ここの方が詳しく載ってますので興味があれば。