在Linux中,每个进程都有三个标准流:
- 标准输入(stdin)
- 标准输出(stdout)
- 标准错误输出(stderr)
标准输出(stdout)和标准错误(stderr)分别被分配为文件描述符1和2。
我们可以使用 “>filename” 来将标准输出重定向到一个文件。
如果我们想要将错误输出重定向到文件中,我们可以使用 “2>filename”。
如果我们想要将两者一起重定向,我们可以使用 “>&” 符号。
在这个例子中, >/dev/null
将标准输出重定向到 /dev/null
设备,这个设备可以理解为一个黑洞,它会把一切输入都丢弃,也就是说,该命令的输出将被直接丢弃。
“&1” 是一个文件描述符,表示将输出重定向到文件描述符1,即标准输出。
2>&1
是将标准错误输出重定向到标准输出。这样可以将标准输出和标准错误输出一并重定向到 /dev/null
,也就是将所有输出都丢弃。
这里的意思是将标准错误输出重定向到标准输出,也就是将标准错误输出和标准输出合并在一起,然后将它们都重定向到 /dev/null 文件中,从而实现完全的重定向。