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 的意思是,将 stdoutstderr 输出到指定位置,那么是不是可以用 cmd >a 2>a代替?不!虽然cmd >a 2>&1cmd >a 2>a 非常相似,但是这两种是有区别的,前者只会打开文件一次,而后者会打开两次,在第二次打开的时候,stderr 会覆盖 stdout,所以注意,这两种是不一样的。






---

















以上是关于Linux 重定向的主要内容,如果未能解决你的问题,请参考以下文章

302 登录重定向后被 IE 删除的 URL 片段

链接中的 URL 片段和 JSF 中的 ajax 重定向

使用片段 (#) 重定向链接 - asp.net

在 PHP 重定向期间处理片段标识符

重定向时如何在 Safari 中保留 uri 片段?

Linkedin OAuth 2.0 重定向 URL 不能包含片段标识符 (#)