/dev/null
/dev/null
(nullデバイスとも呼ばれる)は、UNIXやUnix系オペレーティングシステム (OS) におけるスペシャルファイルの1つで、そこに書き込まれたデータを全て捨て(writeシステムコールは成功する)、読み出してもどんなプロセスに対してもデータを返さない(EOFを返す)。
概要
[編集]/dev/null
は通常、プロセスの不要な出力ストリームを捨てるのに使うか、入力ストリームのための空のファイルとして使う。これは一般にリダイレクトによってなされる。プログラマ、特にUnix系のプログラマの間では、ビットバケツ (bit bucket)、あるいはブラックホール (black hole) などとも呼ばれる。
用途
[編集]UNIXやUnix系OSのソフトウェアは、動作時に標準出力や標準エラー出力に動作状況や、エラーや警告を伝えるメッセージを出力することがある。これらはデフォルトで画面に表示され、cronデーモンで自動的に実行された場合は出力されたメッセージ文がメールでユーザに送られたりする。シェルスクリプトなどにおいてもこれらのメッセージ出力が邪魔になることがある。ソフトウェアによっては、コマンドラインオプション等でこれらのメッセージを出力しないようにできるものもあるが、できないものもある。
そのような場合に、ソフトウェアが標準出力や標準エラー出力に出力するメッセージを /dev/null
にリダイレクトするようにあらかじめ指定しておくと、これを回避できる。
他のOSにおける等価機能
[編集]CP/M(および後のMS-DOSやWindows)での同等のデバイスとして NUL:
またはNUL
(NULデバイス[1])がある。例えば、PAUSE>NUL
のように出力をNULに向けることで、ユーザーのキー押下を待ちうけつつ、画面には何も表示しないという使い方があった。Amigaでは、デバイス名はNIL:
となっていた。Windows NTやその後のWindowsでは、内部的には\Device\Null
という名前になり、DOSのNUL
はそのデバイスへのソフトリンクになっていた。OpenVMSでは、NL:
という名前である。
俗語
[編集]UNIXプログラマの間では、次のような冗談めかした隠語表現あるいはメタファーに使われる。
- 「不平不満は
/dev/null
に送ってください」(不平不満は受け付けない) - 「私のメールは
/dev/null
にアーカイブされた」(私のメールは削除された) - 「
/dev/null
にリダイレクトしろ」(死んじまえ)
欧米ではチタニウムPowerBook G4の広告コピーとして The Titanium Powerbook G4 Sends other UNIX boxes to /dev/null.(チタニウムPowerBook G4は他のUNIXマシンを/dev/null送りにする)という文が使われた。
ジョークのネタとしてもよく使われ、システムの/dev/null
は98%まで使用済みなどというユーザーへのワーニング表示などがある。1995年、ドイツの雑誌 c't のエイプリルフール記事として、入力されたデータを内蔵するLEDの点滅に変換する/dev/null
チップが登場したという嘘の記事が掲載されたことがある。
関連項目
[編集]参考文献
[編集]- ^ Microsoft. “SHELL Redirected to NUL Device Suppresses MS-DOS Message”. 2013年10月6日閲覧。