/dev/null

/dev/nullとは



/dev/nullは、Unixおよび[Unix系]]の[[オペレーティングシステム]において、特別な役割を持つファイルの一つです。このファイルは、書き込まれたすべてのデータを破棄し、読み込もうとしても何も返さないという特徴を持っています。この特性から、不要な出力ストリームを捨てる、または入力ストリームのために空のファイルとして使用されることが一般的です。

概要



/dev/nullは、その特異な動作から、プログラマーの間では「ビットバケツ」や「ブラックホール」といった隠語で呼ばれることもあります。これらの名前は、/dev/nullがデータを吸い込み、二度と取り出すことができない様子を、比喩的に表現しています。通常、/dev/nullはリダイレクトという仕組みを通じて利用されます。これは、コマンドの出力先を/dev/nullに指定することで、不要な出力を画面に表示させないようにしたり、ログファイルに書き込まれるのを防いだりする際に用いられます。

用途



Unix系のOSでは、ソフトウェアが動作状況やエラーメッセージなどを標準出力や標準エラー出力に出力することが一般的です。これらのメッセージは通常、画面に表示されますが、自動実行されるスクリプトやバックグラウンドで動作するプログラムでは、これらのメッセージが不要な場合があります。例えば、cronデーモンによって実行されるスクリプトから出力されたメッセージは、メールでユーザーに通知されることがあります。このような状況で、/dev/nullは非常に役立ちます。

コマンドの実行時に、標準出力や標準エラー出力を/dev/nullにリダイレクトすることで、これらのメッセージを破棄することができます。これにより、不要な出力によって画面が乱雑になるのを防ぎ、自動実行されるプログラムのログがメールボックスを圧迫するのを防ぐことができます。プログラムによっては、コマンドラインオプションで出力を抑制できるものもありますが、そうでない場合には/dev/nullへのリダイレクトが有効な解決策となります。

他のOSにおける等価機能



/dev/nullと同様の機能は、他のOSにも存在します。CP/M|CP_MMS-DOS、そしてWindowsでは、NUL:またはNULというデバイスが対応します。例えば、PAUSE > NULというコマンドは、ユーザーのキー入力を待つ際に画面出力を抑制します。Amiga OSでは、NIL:というデバイスが同様の役割を果たします。Windows NT以降のWindowsでは、内部的に\Device\Nullという名前で、DOSのNULはそれへのソフトリンクとして実装されています。OpenVMSでは、NL:が同等の機能を提供します。

俗語としての/dev/null



Unixプログラマーの間では、/dev/nullはその特性から、様々な隠語や比喩表現として使われることがあります。

「不平不満は/dev/nullに送ってください」:これは、不平不満は一切受け付けないという意思表示です。
「私のメールは/dev/nullにアーカイブされた」:これは、メールが削除されたことを意味します。
「/dev/nullにリダイレクトしろ」:これは、相手に「消えろ」という強い拒絶を意味するスラングとして使われます。

また、AppleのチタニウムPowerBook G4の広告では、「The Titanium Powerbook G4 Sends other UNIX boxes to /dev/null.」(チタニウムPowerBook G4は他のUNIXマシンを/dev/null送りにする)というコピーが使用され、/dev/nullが「消滅」の象徴として用いられました。

/dev/nullは、ジョークのネタとしても使われることがあり、システム上の/dev/nullが98%使用済みであるという警告表示のような、ユーモラスな演出も存在します。1995年には、ドイツの雑誌c'tがエイプリルフール記事として、入力されたデータをLEDの点滅に変換する/dev/nullチップが登場したという嘘の記事を掲載しました。

関連事項



Null:Null値、無効な値を指す概念
UNIX哲学:UNIXの設計思想、シンプルさを重視する
標準ストリーム:標準入力、標準出力、標準エラー出力
/dev/zero:すべてゼロのデータを生成するファイル
/dev/random:乱数データを提供するファイル
スペシャルファイル:デバイスなどの特別なファイル
rm (Unix):ファイルを削除するコマンド

参考資料



Single Unix Specification Section 10.1
Jargon file entry for "bit bucket"

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。