您的位置:首页 > 其它

make 2>&1 > log.txt 命令解析

2016-05-16 17:31 477 查看

make&&makeinstall 2>&1 | tee  log.txt

等价于:make 2>&1 > log.txt && make install 2>&1 >>  log.txt

安装的命令是make && make install 2>&1 | tee ./qtemake.log 。不懂其中的“2>&1”含义,于是搜之。
<span style="background-color: rgb(255, 255, 255);"><span style="color:#464646;"> </span><strong><span style="color:#ff0000;">2>&1</span></strong><span style="color:#464646;"> : </span><span style="color:#ff0000;"><strong>是将标准出错重定向到标准输出</strong></span></span>
> 是输出重定向的意思。
> 是以覆盖的方式重定向
>> 是追加的方式重定向。

1 代表标准输出
2 代表错误信息输出
&1 就代表的是标准输出
最后一个& 符号,是后端执行的意思。

我找个例子,你耐心研究一下:
ls han
ls: 无法访问han: 没有那个文件或目录
执行
~$ ls han >1.txt 2>&1
在shell中没有任何显示
此时再执行~$ cat 1.txt
ls: 无法访问han: 没有那个文件或目录
说明错误信息被重定向到1.txt 这个文件中了。
如果不加这个&
ls han >1.txt 2>1

又会多出来一个 1 文件。
cat 1
ls: 无法访问han: 没有那个文件或目录
看到了把。&1 代表逻辑上的标准输出。 不加& ,那就会产生名为的1的文件

linux tee命令详解

tee  功能说明:读取标准输入的数据,并将其内容输出成文件。  语   法:tee [-ai][--help][--version][文件…]  补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件。  参   数:-a 附加到既有文件的后面,而非覆盖它。如果给予tee指令的文件名称已经存在,预设会覆盖该文件的内容。加上此参数后,数据会新增在该文件内容的最后面,而不会删除原先之内容。       -i 忽略中断信号       --help 在线帮助       --version 显示版本信息  范   例:  列出文本文件slayers.story的内容,同时复制3份副本,文件名称分别为ss-copy1、ss-copy2、ss-copy3:  $ cat slayers.story | tee -a ss-copy1 ss-copy2 ss-copy3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: