重定向符号和tee命令区别

 

来源:http://zyp88.blog.51cto.com/1481591/1604036        
功能说明:读取标准输入的数据,并将其内容输出成文件。

语  法:tee [-ai][--help][--version][文件...]

补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。

参  数:
 -a或--append  附加到既有文件的后面,而非覆盖它.
 -i-i或--ignore-interrupts  忽略中断信号。
 --help  在线帮助。
 --version  显示版本信息。

一,重定向
1.1      重定向符号
>    输出重定向到一个文件或设备 覆盖原来的文件
>!   输出重定向到一个文件或设备 强制覆盖原来的文件
>>             输出重定向到一个文件或设备 追加原来的文件
<    输入重定向到一个程序

1.2标准错误重定向符号
2>  将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell
2>>  将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1  将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>&    将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  c-shell
|&   将一个标准错误 管道 输送 到另一个命令作为输入

1.3命令重导向示例
在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:
1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <                                                              
2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>

 

 

[root@localhost ~]# who | tee who.out
root     pts/0        2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# cat who.out
root     pts/0        2009-02-17 07:47 (123.123.123.123)
[root@localhost ~]# pwd | tee -a who.out
/root
[root@localhost ~]# cat who.out
root     pts/0        2009-02-17 07:47 (123.123.123.123)
/root
[root@localhost ~]# echo "I LOVE YOU" | tee 1.txt

I LOVE YOU

[root@localhost ~]# echo "I LOVE YOU" | tee  -a 1.txt

I LOVE YOU

[root@localhost ~]#cat  1.txt

I LOVE YOU

I LOVE YOU

[test @test test]# ls -al > list.txt
将显示的结果输出到 list.txt 文件中,若该文件以存在则予以取代!

[test @test test]# ls -al >> list.txt
将显示的结果累加到 list.txt 文件中,该文件为累加的,旧数据保留!

[test @test test]# ls -al  1> list.txt   2> list.err
将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err

[test @test test]# ls -al 1> list.txt 2> &1
将显示的数据,不论正确或错误均输出到 list.txt 当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式!

[test @test test]# ls -al 1> list.txt 2> /dev/null
将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! /dev/null ,可以说成是黑洞装置。为空,即不保存。

原文地址:https://www.cnblogs.com/ranxf/p/7099467.html