Linux 重定向
Posted 刘合栋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 重定向相关的知识,希望对你有一定的参考价值。
名称 | 描述 | 代码 | 表示 |
---|---|---|---|
stdin | 标准输入 | 0 | < 或 << |
stdout | 标准输出 | 1 | > 或 >> |
stderr | 标准错误输出 | 2 | 2> 或 2>> |
1>
- 以覆盖
的方式将正确输出输出到指定位置(等同于>
)1>>
- 以追加
的方式将正确输出输出到指定位置(等同于>>
)2>
- 以覆盖
的方式将错误输出输出到指定位置2>>
- 以追加
的方式将错误输出输出到指定位置&>
- 以覆盖
的方式将正确输出和错误输出同时输出到指定位置&>>
- 以追加
的方式将正确输出和错误输出同时输出到指定位置2>&1
- 将错误输出以正确输出的形式输出到指定位置<
- 将文件里的内容取代键盘作为新的输入设备<<EOF
- Here document
例子
将正确输出重定向到文件
[[email protected] ~]$ ls /etc > file
[[email protected] ~]$ ls /etc/ 1> file
将正确输出追加重定向到文件
[[email protected] ~]$ ls /etc >> file
[[email protected] ~]$ ls /etc/ 1>> file
将错误输出重定向到文件
[[email protected] ~]$ ls /etC 2> file
将错误输出追加重定向到文件
[[email protected] ~]$ ls /etC 2>> file
将正确输出和错误输出重定向到文件
[[email protected] ~]$ ls /etc /etC &> file
[[email protected] ~]$ ls /etc /etC > file 2>&1
[[email protected] ~]$ ls /etc /etC 1> file 2>&1
将正确输出和错误输出追加重定向到文件
[[email protected] ~]$ ls /etc /etC &>> file
[[email protected] ~]$ ls /etc /etC >> file 2>&1
[[email protected] ~]$ ls /etc /etC 1>> file 2>&1
输入重定向
[[email protected] ~]$ cat test
date
[[email protected] ~]$/bin/bash test
2019年 02月 07日 星期四 09:14:10 CST
Here document
[[email protected] ~]$ cat << EOF >> test
Hello World.
EOF
注意
我们已知cmd >2 2>&1
的意思是,将 stdout
和 stderr
输出到指定位置,那么是不是可以用 cmd >a 2>a
代替?不!虽然cmd >a 2>&1
与 cmd >a 2>a
非常相似,但是这两种是有区别的,前者只会打开文件一次,而后者会打开两次,在第二次打开的时候,stderr
会覆盖 stdout
,所以注意,这两种是不一样的。
---
以上是关于Linux 重定向的主要内容,如果未能解决你的问题,请参考以下文章