约 100 字 预计阅读 1 分钟
Linux 标准输出(stdout)和标准错误(stderr)的重定向
1. 重定向符号和语句
1
2
3
4
| > 以擦写的模式重定向至...
>> 以追加的模式重定向至...
1 代表stdout标准输出
2 代表stderr标准错误
|
2. 标准错误重定向到标准输出,然后合并重定向到文件
1
| command 2>&1 output.txt
|
3. 标准输出流将仅重定向到文件,在终端中不可见。如果该文件已存在,则会被覆盖。
1
2
| command > output.txt
#command &1> output.txt
|
4. 标准输出流将仅重定向到文件,在终端中不可见。如果文件已存在,则新数据将附加到文件末尾。
5. 标准错误流将仅重定向到文件,在终端中不可见。如果该文件已存在,则会被覆盖。
6. 标准错误流将仅重定向到文件,在终端中不可见。如果文件已存在,则新数据将附加到文件末尾。
7. 标准输出和标准错误流都将仅重定向到文件,终端中不会显示任何内容。如果该文件已存在,则会被覆盖。
8. 标准输出和标准错误流都将仅重定向到文件,终端中不会显示任何内容。如果文件已存在,则新数据将附加到文件末尾。
9. 标准输出流将被复制到文件中,它仍将在终端中可见。如果该文件已存在,则会被覆盖。
1
| command | tee output.txt
|
10. 标准输出流将被复制到文件中,它仍将在终端中可见。如果文件已存在,则新数据将附加到文件末尾。
1
| command | tee -a output.txt
|
11. Bash没有简写语法,只允许StdErr管道到第二个命令,这里需要再次与tee组合来完成表格。如果你真的需要这样的东西,请看“如何管道stderr,而不是stdout?” 有关如何通过交换流或使用进程替换来完成此操作的Stack Overflow。
12. 标准输出和标准错误流都将被复制到文件中,同时仍在终端中可见。如果该文件已存在,则会被覆盖。
1
| command |& tee output.txt
|
13. 标准输出和标准错误流都将被复制到文件中,同时仍在终端中可见。如果文件已存在,则新数据将附加到文件末尾。
1
| command |& tee -a output.txt
|