📅  最后修改于: 2023-12-03 14:59:29.546000             🧑  作者: Mango
在 Bash 中,重定向是一种将命令的输出发送到不同位置的技术。使用重定向,可以将标准输出(stdout)重定向到文件、管道或特殊设备中。然而,有时候我们不希望看到命令的输出,这时可以将其重定向到特殊设备 /dev/null
。
/dev/null
是一个特殊的设备文件,它会丢弃任何向它写入的数据,并且在读取时总是返回 EOF(即空文件)。重定向到 /dev/null
相当于将输出扔进一个黑洞,不会在终端或其他地方显示。
以下是在 Bash 中重定向输出到 /dev/null
的用法示例:
要将命令的标准输出重定向到 /dev/null
,可以使用 >
或 1>
运算符:
command > /dev/null
例如,如果我们希望运行一个命令,但不想看到输出,可以使用以下命令:
ls > /dev/null
上述命令会执行 ls
命令,但输出结果将被重定向到 /dev/null
,因此不会在终端上显示任何信息。
有时候,命令的错误信息(标准错误)也会产生输出。如果希望将错误信息重定向到 /dev/null
,可以使用 2>
或 &>
运算符:
command 2> /dev/null # 重定向标准错误
command &> /dev/null # 重定向标准输出和标准错误
例如,如果一个命令产生了错误输出,并且我们想要将其忽略,可以使用以下命令:
command 2> /dev/null
这样,命令的错误输出将被重定向到 /dev/null
,因此不会在终端上显示错误信息。
请注意,1>
和 &>
运算符中的数字 1
表示标准输出,而 2
表示标准错误。
除了重定向输出,还可以重定向输入和输出。要同时重定向标准输入、输出和错误消息,可以使用以下语法:
command < input-file > output-file 2> error-file
例如,以下命令将命令的输入重定向为 input.txt
文件,输出重定向到 output.txt
文件,错误消息重定向到 error.txt
文件:
command < input.txt > output.txt 2> error.txt
这样,命令的输入将从 input.txt
文件读取,输出将写入到 output.txt
文件,错误消息将写入到 error.txt
文件。
通过将命令的输出重定向到 /dev/null
,我们可以阻止输出显示在终端上。这对于不需要看到输出或将其丢弃的任务非常有用。使用重定向和 /dev/null
,可以更好地控制命令的输出。