首页 > 解决方案 > 表达式“< /dev/null some_command”有什么作用?

问题描述

我对重定向有点熟悉,并且知道 /dev/null 可用于隐藏输出,例如

some_command > /dev/null 

但我遇到了用法

< /dev/null some_command

这篇ArchWiki 文章中,并想了解它的作用。

我的第一个猜测是它相当于

some_command < /dev/null

但是如果这个猜测是正确的,那么重定向/dev/null到命令有什么好处呢?

标签: linuxbashshellio-redirection

解决方案


是的,它们是等价的。I/O 重定向可以放在命令行的任何位置。

读取时,/dev/null立即返回 EOF。/dev/null如果您想阻止应用程序尝试从其初始标准输入(例如终端)读取,则重定向输入非常有用。

一个常见的用途是通过 SSH 在后台运行程序并且您希望 SSH 连接立即关闭。在所有引用它的文件描述符都关闭之前,连接不会关闭,因此您重定向所有标准描述符:

ssh servername 'somecommand </dev/null >/dev/null 2>&1 &'

推荐阅读