兔八哥极品软件园    运行: 4471天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

linux 2>&1

作者:admin 发布于:2020-9-15 16:47 Tuesday 分类:Linux


.其实很简单,网上说的复杂了

 

在Linux系统中0 1 2是一个文件描述符

名称 代码 操作符 Java中表示 Linux 下文件描述符(Debian 为例)
标准输入(stdin) 0 < 或 << System.in /dev/stdin -> /proc/self/fd/0 -> /dev/pts/0
标准输出(stdout) 1 >, >>, 1> 或 1>> System.out /dev/stdout -> /proc/self/fd/1 -> /dev/pts/0
标准错误输出(stderr) 2 2> 或 2>> System.err /dev/stderr -> /proc/self/fd/2 -> /dev/pts/0

正常情况下

echo "hello" > t.log

其实也可以写成

echo "hello" 1> t.log


我们再来看: 2>&1

这句话实际上是想把错误输出重定向到标准输出

但是直接写2>1, 就会把1当做一个文件了,所以这个&符号相当于一个转义符一样的

 

搞懂了之后你可以随便写,随意控制输出

下面这句话的意思是把标准输出out.txt 把错误输出到err.txt

cat /etc/hosts 1>out.txt 2>err.txt

cat /etc/hosts 2&>1>all.txt //就是把标准输出和错误错误输出都输出到all.txt



Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap