注:机翻,未校。
Five ways to use redirect operators in Bash
Posted: January 22, 2021 | by Damon Garn
Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output to make your Linux sysadmin life easier.
重定向操作符是在 Bash 命令行中工作的一个基本但重要的部分。了解如何安全地重定向输入和输出,从而简化 Linux 系统管理员的工作。
Photo by Kind and Curious on Unsplash
Data is entered into the computer via stdin (usually the keyboard), and the resulting output goes to stdout (usually the shell). These pathways are called streams. However, it’s possible to alter these input and output locations, causing the computer to get information from somewhere other than stdin or send the results somewhere other than stdout. This functionality is referred to as redirection.
数据通过 stdin(通常是键盘)输入到计算机中,生成的输出进入 stdout(通常是 shell)。这些路径称为流。但是,可能会更改这些输入和输出位置,从而导致计算机从 stdin 以外的位置获取信息,或者将结果发送到 stdout 以外的位置。此功能称为重定向。
In this article, you’ll learn five redirect operators, including one for stderr. I’ve provided examples of each and presented the material in a way that you can duplicate on your own Linux system.
在本文中,您将学习 5 个重定向运算符,包括一个用于 stderr 的运算符。我提供了每个示例,并以您可以在自己的 Linux 系统上复制的方式呈现这些材料。
Regular output > operator 常规输出>运算符
The output redirector is probably the most recognized of the operators. The standard output (stdout) is usually to the terminal window. For example, when you type the date
command, the resulting time and date output is displayed on the screen.
输出重定向器可能是运算符中最受认可的。标准输出 (stdout) 通常发送到终端窗口。例如,当您键入 date
命令时,生成的时间和日期输出将显示在屏幕上。
[damon@localhost ~]$ date
Tue Dec 29 04:07:37 PM MST 2020
[damon@localhost ~]$
It is possible, however, to redirect this output from stdout to somewhere else. In this case, I’m going to redirect the results to a file named specifications.txt
. I’ll confirm it worked by using the cat
command to view the file contents.
但是,可以将此输出从 stdout 重定向到其他位置。在本例中,我要将结果重定向到名为 specifications.txt
的文件。我将通过使用 cat
命令查看文件内容来确认它是否正常工作。
[damon@localhost ~]$ date > specifications.txt
[damon@localhost ~]$ cat specifications.txt
Tue Dec 29 04:08:44 PM MST 2020
[damon@localhost ~]$
The problem with the >
redirector is that it overwrites any existing data in the file. At this stage, you now have date
information in the specifications.txt
file, right? If you type hostname > specifications.txt
, the output will be sent to the text file, but it will overwrite the existing time and date information from the earlier steps.
>
重定向器的问题在于它会覆盖文件中的所有现有数据。在此阶段,您现在在 specifications.txt
文件中有 date
信息,对吧?如果键入 hostname > specifications.txt
,输出将发送到文本文件,但会覆盖先前步骤中的现有时间和日期信息。
[