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

1 bash

有人提到

echo "" > /dev/null 
Run Code Online (Sandbox Code Playgroud)

作为对我的命令,我应该运行。然而,我太紧张了,不敢尝试,因为网上有人提到它似乎“相对无害……”

这个命令会做什么?我正在考虑在 VM 中运行它,但我没有设置,如果它什么都不做,我不想浪费时间。我也不想在我的系统上运行它,以防万一它很危险。

它有什么作用?

Law*_*ceC 7

这并不危险。

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

在现代Unix系统中,这些“特殊”的文件由和硬件检测过程动态维护-udevsystemdLinux下,例如。但是,mknod如果系统中的硬件没有改变 - 在即插即用接口流行之前(例如 70 年代、80 年代的各种 Unice和 90 年代初),这很常见。

/dev/null是一个标准的 Unix 设备驱动程序,它只是扔掉它收到的东西。它通常用于丢弃不需要的输出或用于测试。

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

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

  • 作为脚注,虽然提问者的命令可以用作“什么都不做”的命令,但为此目的使用 `:` 效率更高。 (3认同)