Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

重定向标准输出(stdout)同时输出到文件

wpadmin~August 19, 2018 /System Management

重定向标准输出(stdout)同时输出到文件

正文

重定向标准输出(stdout)同时输出到文件

program [arguments...] 2>&1 | tee [-a] outfile

此处简单解释一下 2>&1 , 这个应该可以拆解成 三部分理解,分别为 2, >, &1
2 为 进程第 2 个的文件描述符(file descriptor), 即 stderr 标准错误流
> 为 重定向
&1 为 进程第 1 个的文件描述符(file descriptor), 即 stdout 标准错误流
合起来就是 将 stderr 重定向到 stdout.

可以对比以下两个命令输出的不同情况

ls foo > /dev/null 2>&1
ls foo > /dev/null

其中 /dev/null 可以简单理解为一个黑洞/垃圾箱。它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到。

参考

Understanding Shell Script’s idiom: 2>&1
https://www.brianstorti.com/understanding-shell-script-idiom-redirect/

linux shell中”2>&1″含义
https://www.cnblogs.com/zhenghongxin/p/7029173.html

Leave a Reply

Your email address will not be published. Required fields are marked *