1. 程式人生 > >tee命令用法小結

tee命令用法小結

常常會要使用到tee命令,但總是沒有理解這個命令的一些細節,所以有時候使用總是不成功。最近再次學習到這個命令,有了更清晰的理解,今天整理小結一下。

1,命令含義

tee - read from standard input and write to standard output and files

說明,tee命令從stdin獲取資料,然後一方面將資料傳送給stdout,另一方面則傳送給某檔案;可以看出tee命令具有兩重定向功能,將一個輸入傳送到兩個輸出中,如下示意圖:

stdin ----(tee)---> stdout

                       ----> file

2,命令使用

tee [option] file

注意點:a,tee只能從stdin獲取,而不能從引數中獲取,所以常常使用中為 cmd1 | tee ...;並且,stderr是會忽略的哦;

                b,tee雙重定向的一個方向為file,即某file名,當然也可以是'-',即stdin(其他/dev/stdin類似);

                c,tee雙重定向的另一個方向為stdout,不過很多時候可以將該stdout用管道重定向給其他命令,如 cmd1 | tee file | cmd2;

                d,常用的option為-a,作用是以累加的形式將stdin加到file中去,類似於">>"之區別與">";

3,使用舉例

1)基本使用

[[email protected] asd]# cat afile 
aaaa
[[email protected] asd]# cat bfile 
bbb

[[email protected] asd]# cat afile  bfile | tee cfile
aaaa
bbb
[[email protected] asd]# cat cfile 
aaaa
bbb

2)說明只能stdin獲取,而stderr會被忽略

[[email protected] asd]# cat afile dfile | tee cfile 
cat: dfile: 沒有那個檔案或目錄
aaaa
[

[email protected] asd]# cat cfile 
aaaa

3)-a的使用

[[email protected] asd]# cat afile bfile | tee -a cfile  
aaaa
bbb
[[email protected] asd]# cat cfile 
aaaa
aaaa
bbb

4)tee重定向後stdout方向資料的使用

[[email protected] asd]# cat afile bfile | tee  cfile | tr 'a-z' 'A-Z'
AAAA
BBB
[[email protected] asd]# cat cfile 
aaaa
bbb

=====================================================(END)

*先小結這些我現在所知道的內容。

*有錯誤的地方,還請各位大俠幫忙指出,3Q。