/dev/null

类Unix系统特殊设备文件

/dev/null(或称空设备)在类Unix系统中是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF[1]

程序员行话,尤其是Unix行话中,/dev/null被称为比特桶[2]或者黑洞

使用

空设备通常被用于丢弃不需要的输出,或作为用于输入流的空文件。这些操作通常由重定向完成。

/dev/null是一个特殊文件,而不是目录,因此不能使用Unix命令mv将文件移动到其中。使用rm命令才是Unix中删除文件的正确方法。

本概念大致相当于CP/MDOSMicrosoft Windows中的NUL:或单纯的NUL设备,Windows NT及其后续系统中的\Device\NullNULAmiga中的NIL:,以及OpenVMS中的NL:。在基于.NETWindows PowerShell中,相同的概念为$null。

计算机文化中的引用

在Unix程序员使用的科技行话中和隐喻经常使用这一概念,例如“请将投诉发送到/dev/null”,“我的邮件被存档到了/dev/null”,以及“重定向到/dev/null”,分别表示:“不要拿投诉来烦我”,“我的邮件被删掉了”,和“一边去”。iPhone Dev Team通常使用“可以向/dev/null捐款”,意为他们不接受捐款。

空设备也是科技幽默的常用主题之一,例如警告用户系统的/dev/null已经使用了98%。1995年愚人节一家德国杂志c't写道,一种增强的/dev/null芯片可以借由将数据转换成内部LED的闪光以有效的处理输入数据。

苹果公司也曾在2003年利用这个概念做过一则广告,“将其它牌子的UNIX都送进/dev/null”,表明运行Mac OS XPowerBook包含了全部UNIX特性[3]

参见

参考文献

  1. ^ Single Unix Specification Section 10.1. [2010-09-19]. (原始内容存档于2009-08-04). 
  2. ^ Jargon file entry for "bit bucket". [2010-09-19]. (原始内容存档于2013-06-18). 
  3. ^ 存档副本 (PDF). [2010-09-19]. (原始内容存档 (PDF)于2015-10-09).