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
aaaa
bbb
[[email protected] asd]# cat cfile
aaaa
bbb
2)說明只能stdin獲取,而stderr會被忽略
[[email protected] asd]# cat afile dfile | tee cfile
cat: dfile: 沒有那個檔案或目錄
aaaa
[
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。