概述
在Linux中,输出重定向是一种将命令的输出(标准输出或标准错误)重定向到文件或其他设备的方法。以下是一些常见的输出重定向操作符及其用法:
- 标准输出重定向 (>)
将命令的标准输出重定向到一个文件中。如果文件不存在,它会被创建;如果文件已经存在,它会被覆盖。
command > file
示例:
echo "Hello, World!" > output.txt
- 追加标准输出 (>>)
将命令的标准输出追加到一个文件中。如果文件不存在,它会被创建;如果文件已经存在,输出会被追加到文件的末尾。
command >> file
示例:
echo "Hello again!" >> output.txt
- 标准错误重定向 (2>)
将命令的标准错误输出重定向到一个文件中。
command 2> error.log
示例:
ls non_existent_file 2> error.log
- 标准输出和标准错误重定向到同一个文件 (&>)
将命令的标准输出和标准错误输出都重定向到一个文件中。
command &> file
示例:
ls non_existent_file &> combined.log
- 标准输出和标准错误分别重定向到不同文件
将标准输出重定向到一个文件,标准错误重定向到另一个文件。
command > output.log 2> error.log
示例:
ls non_existent_file > output.log 2> error.log
- 标准输入重定向 (<)
将文件的内容作为命令的标准输入。
command < file
示例:
sort < input.txt
- 管道 (|)
将一个命令的标准输出作为另一个命令的标准输入。
command1 | command2
示例:
echo "Hello, World!" | grep "Hello"
- 标准输出和标准错误重定向到不同文件,并追加 (>>)
将标准输出追加到一个文件,标准错误追加到另一个文件。
command >> output.log 2>> error.log
示例:
ls non_existent_file >> output.log 2>> error.log
- 标准输出和标准错误重定向到同一个文件,并追加 (&>>)
将标准输出和标准错误都追加到一个文件中。
command &>> file
示例:
ls non_existent_file &>> combined.log
- 标准输出和标准错误重定向到 /dev/null
将标准输出和标准错误丢弃,不输出到任何地方。
command > /dev/null 2>&1
示例:
ls non_existent_file > /dev/null 2>&1
这些是Linux中常见的输出重定向操作符及其用法。通过这些操作符,你可以灵活地控制命令的输出和错误信息的处理方式。
实践
标准输出重定向 (>)
现有图 1 所示的文件,其中有一个名为“20241015.txt”的文本文件,我们将使用标准输出重定向命令覆盖其中的内容。
首先,我们需要查看一下其中的内容:
如图 3 所示,可见,其中的内容被覆盖了。
追加标准输出 (>>)
接着上述的“标准输出重定向 (>)”实践内容,我们使用追加标准输出(>>)在文本文件 20241015.txt 中追加一行内容。
如图 4 所示,可见,内容被成功追加到新的一行了。
标准错误重定向 (2>)
接着上述的“追加标准输出 (>>)”实践内容,我们将使用标准错误重定向(2>)在文本文件 20241015.txt 中覆盖内容,覆盖后的内容是命令的标准错误。
如图 5 所示,可见,命令标准错误输出内容被重定向给了该文本文件,并覆盖了其中的内容。
原文链接:https://page.om.qq.com/page/O78iinZB_CgXyD-UaEN6gbpw0
参考:Linux命令——4.重定向、管道