📌  相关文章
📜  bash 将输出重定向到 null - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:59:29.546000             🧑  作者: Mango

重定向输出到 /dev/null

在 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,可以更好地控制命令的输出。