[Linux]数据流重定向


Linux命令执行过程的数据传输情况如下所示:

\

1)标准输入(stdin):代码为0,使用<或<<;

2)标准输出(stdout):代码为1,使用>或>>;

3)标准错误输出(stderr):代码为2,使用2>或2>>;

其中>表示以覆盖的方式将数据写入文件或设备,>>表示以累加的方式将数据写入文件或设备。

其中<表示将原本需要由键盘输入的数据改由文件内容来替代,而<<表示结束输入的意思。举例来说,我要用cat直接将输入的信息输出到catfile,且当由键盘输入eof时结束,那么:

# cat > catfile <<EOF
> This is a test
> ok 
> EOF

tee - 双向重定向

从上面我们可以知道数据流要么输出到文件或设备,要么输出到屏幕(即标准输出),而tee命令可以达到同时输出的目的: \
tee可以让标准输出转存一份到文件,其用法如下:
tee [-a] file
-a:以累加方式
ls -l /home | tee homefile | more

相关内容