在 Bash 中将 Stderr 和 Stdout 重定向到一个文件
本文将讨论 Linux 中的标准输出和标准错误。 我们将看到如何在 Bash 中重定向标准输出和标准错误。
让我们开始了解 Linux 中的标准输出和标准错误这两个术语。
Linux 中的标准输出和标准错误
在 Linux 中,命令从用户那里获取一些输入,可以是文件或任何属性。 当我们执行这些命令时,它们会给出我们输入的一些输出,称为标准输出。
此标准输出可能是成功或错误。 如果我们得到的输出是一个错误,我们称之为标准错误。
两者都将显示在我们的终端屏幕上。 有时,我们希望将标准输出和标准错误存储在文件中以用于测试或调试代码。
在 Linux 中,我们可以将这两个输出重定向到一个文件中,存储它的过程称为重定向。
在 Linux 中,对于每个进程,我们都有三个数据流,标准输入 (stdin)、标准输出 (stdout) 和标准错误 (stderr)。
标准输入 (stdin) 通过键盘从用户那里获取输入。 标准输出 (stdout) 在终端屏幕上显示输出。
标准错误 (stderr) 在屏幕上显示错误信息。 默认情况下,标准输出和标准错误都打印在终端屏幕上。
在 Linux 中,每个数据流都有一个唯一的数字 ID:
- 对于标准输入 (stdin),数字 ID 为 0。
- 对于标准输出 (stdout),数字 id 为 1。
- 对于标准错误 (stderr),数字 ID 为 2。
让我们更详细地解释标准输出和标准错误的重定向。
在 Bash 中将标准输出重定向到一个文件
在 Linux 中,我们可以使用数字 ID 将标准输出重定向到一个文件。 要重定向任何命令的标准输出,我们使用 1 和符号 > 的重定向操作。
在我们的示例中,我们将使用 ls 命令。 我们将 ls 命令的输出重定向到一个文件。
然后我们将查看文本文件以查看存储在文件中的 ls 命令的输出。
示例代码:
$ ls 1> stdout.txt
要查看文件,我们使用以下命令:
$ cat stdout.txt
如上面的终端屏幕所示,我们在终端中使用了 ls 1> stdout.txt 命令。 此命令将 ls 命令的输出存储到名为 stdout.txt 的文件中。
我们在 Linux 中使用 ls 命令列出所有文件和目录。 所以我们将 ls 命令的输出重定向到一个文件中。
当我们使用 cat 命令查看文件时,我们可以看到文件中存储了 ls 命令的标准输出。 这就是我们如何使用它的数字 id 将任何命令的标准输出重定向到一个文件。
将标准错误重定向到 Bash 中的文件
我们还可以使用它的数字 id 将标准错误重定向到一个文件。 要将标准错误重定向到文件,我们将其数字 id 2 与重定向运算符 > 一起使用。
我们可以在终端中使用以下命令来做到这一点。
示例代码:
$ cat file.txt 2> stderr.txt
要查看名为 stderr.txt 的文件,我们使用以下命令:
$ cat stderr.txt
正如我们所看到的,我们在终端中使用了 cat file.txt 2> stderr.txt 命令。 由于当前目录中没有名为 file.txt 的文件,因此 cat 命令将给出我们附加在 stderr.txt 文件中的错误。
当我们使用 cat 命令查看 stderr.txt 文件时,我们可以看到它显示了 No such file or directory 的错误。 这意味着我们已将 cat 命令的标准错误重定向到名为 stderr.txt 的文件中。
这就是我们如何将任何命令的标准错误重定向到一个文件中。
将标准输出和标准错误重定向到 Bash 中的文件
我们还可以使用单个命令将这两个输出重定向到一个文件中。 为此,我们使用以下命令。
示例代码:
$ ls 1> stdout.txt 2> stderr.txt
要查看 stdout.txt 文件,我们使用以下命令:
$ cat stdout.txt
要查看 stderr.txt 文件,我们使用以下命令:
$ cat stderr.txt
如我们所见,我们在单个命令中将标准输出和标准错误重定向到文件。 ls 命令的输出将存储在文件 stdout.txt 中,而 stderr.txt 填充将保持为空,因为不会出现错误。
这就是我们如何通过一个命令将标准输出和标准错误重定向到一个文件。
我们希望这篇 Linux 文章有助于您理解如何将任何命令的标准输出和标准错误重定向到 Bash 中的文件。
相关文章
在 Bash 中运行 find -exec 命令
发布时间:2024/03/14 浏览次数:127 分类:操作系统
-
本文将演示如何使用 find 命令的 -exec 参数来使用 find 命令定位文件中的任何文本。