前一章讨论了“输出重定向、输入重定向、文件描述符 (FD)”,在本教程中,您将学习最后一章“错误重定向、为什么错误重定向?”。raksmart美国服务器分享Linux/Unix 输入输出重定向(二)

错误重定向

每当您在终端执行程序/命令时,始终打开 3 个文件,即标准输入、标准输出、标准错误。

每当运行程序时,这些文件始终存在。如前所述,文件描述符与这些文件中的每一个相关联。推荐阅读:《Linux/Unix 输入输出重定向(一)》

文件 文件描述符

标准输入 STDIN 0

标准输出 STDOUT 1

标准错误 STDERR 2

默认情况下,错误流显示在屏幕上。错误重定向是将错误路由到屏幕以外的文件。

为什么错误重定向?

错误重定向是 Unix/Linux 非常流行的特性之一。

经常使用 UNIX 的用户会认为许多命令会给您带来大量错误。

例如,在搜索文件时,通常会出现权限被拒绝错误。这些错误通常对搜索特定文件的人没有帮助。

在执行 shell 脚本时,您通常不希望错误消息弄乱正常的程序输出。

解决方案是将错误消息重定向到文件。

示例 1

$ myprogram 2>errorsfile

上面我们正在执行一个名为 myprogram 的程序。

标准错误的文件描述符是 2。

使用“2>”我们将错误输出重定向到一个名为“errorfile”的文件

因此,程序输出不会因错误而杂乱无章。

示例 2

这是另一个使用 find 语句的示例 –

find . -name ‘my*’ 2>error.log

使用“find”命令,我们正在搜索“.” “name”以“my”开头的文件的当前目录

示例 3:让我们看一个更复杂的示例,

服务器管理员经常列出目录并将错误和标准输出存储到文件中,以便以后处理。这是命令。

ls Documents ABC> dirlist 2>&1

这里,

它将一个文件的输出写入另一个文件的输入。2>&1 表示STDERR重定向到STDOUT的目标(即文件目录列表)

我们将错误输出重定向到标准输出,而标准输出又被重定向到文件目录列表。因此,两个输出都写入文件 dirlist

概括

Linux 中的每个文件都有一个与之关联的对应文件描述符

键盘是标准输入设备,而屏幕是标准输出设备

“>”是输出重定向操作符。“>>” 将输出附加到现有文件

“<”是输入重定向操作符

“>&”将一个文件的输出重定向到另一个文件。

您可以使用相应的文件描述符 2 重定向错误。推荐相关阅读:《Linux / Unix 中的文件权限如何读取、写入和更改?(三)》

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注