Linux 标准输出重定向 2>&1 , 1>&2

1.在linux中,最常使用的 FD (file descriptor) 大概有三个, 分别是:

  • 0 是一个文件描述符,表示标准输入(stdin)
  • 1 是一个文件描述符,表示标准输出(stdout)
  • 2 是一个文件描述符,表示标准错误(stderr)

1.1.在标准情况下, 这些FD分别跟如下设备关联:

  • stdin(0): keyboard 键盘输入,并返回在前端
  • stdout(1): monitor 正确返回值 输出到前端
  • stderr(2): monitor 错误返回值 输出到前端

1.2.可以通过下面的方法改变输出的FD:

  • 1>&2 正确返回值传递给2输出通道 &2表示2输出通道,如果此处错写成 1>2, 就表示把1输出重定向到文件2中.
  • 2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.

2.符号">" 和 "&"说明:

2.1>是重定向符,就是把前面输出的内容重定向到后面指定的位置。例:

echo "abc" > test.txt :把abc输入到test.txt文档中

>前是可以加数字来说明把什么内容重定向到文件中,默认是把标准输出重定向到文件中,所以下面这个例子和上面那个是一样的:

echo "abc" 1> test.txt

2.2& 是一个描述符,如果1或2前不加&,会被当成一个普通文件:

  • 1>&2 意思是把标准输出重定向到标准错误.
  • 2>&1 意思是把标准错误输出重定向到标准输出。
  • &>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

** 转载:https://www.cnblogs.com/bluestorm/p/10754821.html **

posted on 2024-05-05 11:41  林西索  阅读(25)  评论(0编辑  收藏  举报