我读到的/dev/null
是“丢弃”写入其中的所有内容的特殊文件,但直接写入是否会以任何方式使用硬盘?或者 RAM 呢?
例如:
wget http://speedtest.wdc01.softlayer.com/downloads/test500.zip -o /dev/null
同样对于 Windows,写入NUL
行为是否也相同?
答案1
写入/dev/null
不会对硬盘造成任何影响。对于 Windows 也是如此NUL
。
有一件事是不同之处在于,它NUL
是一个“特殊”的名称,而/dev/null
不是。
当你/dev/null
在 Linux(或任何 Unix)上使用时,操作系统会查找具有该名称的文件。如果找到,则不是找到一个,然后它将创建一个实际的真实文件,/dev/null
并将数据写入磁盘;如果您忘记挂载/dev
文件系统或其他事情,就会发生这种情况。
如果/dev/null
确实存在,那么操作系统将检测到它是一个字符设备文件,其魔法数字为 1 和 3(主数字和次数字),并且用于写入该设备的特殊驱动程序将启动.....并丢弃您的数据而不读取它。
null
实际上,您可以在任何您喜欢的地方创建自己的文件(并且可以随意命名):
sudo mknod --mode=666 my_null c 1 3
然后这也会起作用:
echo "dump this!" > ./my_null
但我不知道你为什么会这么做?;-)
答案2
/dev/null
和传统文件不一样。
该/dev/
目录是设备文件系统(设备文件系统)伪文件系统。使用文件系统的形式设备文件系统充当设备管理器,将每个设备显示为一个文件。
此伪/虚拟文件系统不在硬盘上。它位于记忆。
中的文件/dev
由内核生成,用于向软件和进程提供对设备的访问。
null
目录中的文件/dev/
没有大小,其创建日期与系统启动时间相同,并且所有用户均具有读写权限。