IO redirect,


在OS中,0-9 中的每个数字都代表一个流。

现在已指定的有3个: 【0:标准输入流】、【1:标准输出流】、【2:错误输出流】,其余的还未指定。

基本IO操作

cmd > file 把 stdout 重定向到 file 文件中; cmd >> file 把 stdout 重定向到 file 文件中(追加); cmd 2> file 把 stderr 重定向到 file 文件中; cmd 2>> file 把 stderr 重定向到 file 文件中(追加); cat <>file 以读写的方式打开 file; cmd < file cmd 命令以 file 文件作为 stdin; cmd << delimiter ,从 stdin 中读入,直至遇到 delimiter 分界符。   进阶IO &是对FD(File Descriptor)操作 >&n 复制文件描述符
<&n 标准输入复制自文件描述符 n; <&- 关闭标准输入(键盘); >&- 关闭标准输出; n<&- 表示将 n 号输入关闭; n>&- 表示将 n 号输出关闭;

cmd 2>& 1 就是将标准输出流的FD复制给错误输出,就相当于:FD2=FD1,这样的结果是,错误输出重定向到了标准输出。

所以:

cmd >file 2>&1 就是将标准输出重定向到了file中(覆盖方式),然后将错误输出内容放到标准输出里,最终效果就是错误输出也重定向到了file中。

cmd >> file 2>&1  就是将标准输出重定向到了file中(追加方式),然后将错误输出内容放到标准输出里,最终效果就是错误输出也重定向到了file中。 

 

相关内容

    暂无相关文章