回答:
/dev/null
実際にはファイルではありません。それはだキャラクタデバイス!
$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Apr 10 09:53 /dev/null
c
許可文字列の最初の文字(crw-rw-rw-
)はこれを示しています。通常のファイルの場合は、-
代わりになります。
簡単に言うと/dev/null
、ファイルではなく、ファイルシステム内のこのパスにマップされた仮想デバイスであり、ブラックホールのようにデータを飲み込んで消滅させる唯一の目的があります。
入力としても使用できますが、空のファイル(サイズ0)のように動作し、すぐにEOF(ファイルの終わり)を返します。
したがって、それ/dev/null
は特定のファイルサイズを持っていると言うことはできません、それはどんな記憶媒体上の通常のファイルでもないからです。
/dev/null
「device file」と呼ばれる特別な種類のファイルです。
デバイスファイルは、いくつかのカーネル機能へのインターフェースとして機能します。ディレクトリエントリ(「inode」)に必要なスペースを占有するだけですが、実際のコンテンツはなく、実際のファイルサイズもありません。
その他のデバイスファイルは、たとえば/dev/sda
(通常はHDDまたはSSD)、/dev/zero
(読み取り時にゼロを生成するファイル)、または/dev/random
(読み取り時にランダムデータを生成するファイル)です。実際には、すべてのファイルについて/dev/
は、デバイスファイルまたはデバイスファイルを指すリンクのいずれかです。
mknod
ます(任意の場所でデバイスファイルを作成できます)。/dev/
iノードのような仮想ファイルシステムの場合、ディスク領域を占有するのではなく、メモリを占有します。
ls
しdu
て報告するには、0を返します/dev/null
/dev/random
。