在 Unix 和 Linux 系统中,文件描述符用于标识和管理输入输出流。常见的文件描述符有:
0
:标准输入(stdin)1
:标准输出(stdout)2
:标准错误(stderr)
2>&1
是一个重定向操作符,它的作用是将标准错误(stderr)重定向到标准输出(stdout)。具体来说,2>&1
告诉 shell 将文件描述符 2(stderr)的输出重定向到文件描述符 1(stdout)。
具体用法
-
将标准错误重定向到标准输出
command 2>&1
这将使命令的错误输出和标准输出都发送到同一个地方。例如,如果你将输出重定向到一个文件,这个文件将包含命令的所有输出,包括错误信息。
-
将标准输出和标准错误一起重定向到一个文件
command > output.log 2>&1
-
将标准输出和标准错误都丢弃
command > /dev/null 2>&1
这将把命令的所有输出(标准输出和标准错误)都丢弃。
示例
-
将标准错误重定向到标准输出
ls nonexistentfile 2>&1
这将显示文件不存在的错误消息,并将其与标准输出混合在一起。
-
将标准输出和标准错误重定向到文件
ls nonexistentfile > output.log 2>&1
这将在
output.log
文件中记录所有输出,包括错误信息。 -
将所有输出丢弃
ls nonexistentfile > /dev/null 2>&1
这将丢弃命令的所有输出。