echo "" > /dev/null 起什么作用?

echo "" > /dev/null 起什么作用?

有人提到

echo "" > /dev/null 

命令我跑。但我太紧张了,不敢尝试,因为网上有人说这似乎“相对无害……”

这个命令会做什么?我正在考虑在虚拟机中运行它,但我没有设置虚拟机,如果它不执行任何操作,我不想浪费我的时间。我也不想在我的系统上运行它,以防万一。

它有什么作用?

答案1

这并不危险。

  • echo命令用于将输出发送到stdout。这通常是您的终端,但可以重定向到其他内容。
  • 重定向>运算符将把输出重定向stdout到您选择的文件。
  • 文件/dev通常是一种特殊类型的文件,它将输出发送到设备驱动程序而不是存储。

在现代 Unix 系统下,这些“特殊”文件由硬件检测过程生成并动态维护 -udev例如systemd在 Linux 下。但是,如果系统中的硬件没有变化,则有可能有一个完全静态的系统,其中手动生成这些文件(viamknod是一种方式)- 在即插即用接口流行之前(例如 70 年代、80 年代和 90 年代初期的各种 Unices),这是很常见的。

/dev/null是标准的 Unix 设备驱动程序,它会直接丢弃所接收的内容。它通常用于丢弃不需要的输出或用于测试。

如果您在 Windows 的 Linux Subsystem for Windows 下运行此程序,我不确定它如何生成这些文件,但 LXSS 可能会向在子系统下运行的程序提供它们的虚拟版本以实现兼容性。(如果您在“非即插即用设备devmgmt.msc”下查看,Windows 有一个“空”设备驱动程序 - LXSS 可能在后台执行操作以/dev/null真正使用该 Windows 驱动程序。)Cygwin 是另一个提供 Linux 子系统的软件,它也会这样做。

""是一个空字符串,没有任何意义,但除非指定了开关,echo否则会添加换行符,因此输出换行符到(在示例中重定向到)。-necho ""stdout/dev/null

相关内容