IO redirect

在OS中,每启动一个进程,就自动的分配了三个流到进程中。 【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中。 

 

你可能感兴趣的:(IO redirect)