指令使用要點
指令用途
- 將結果同時輸出到螢幕和檔案
- 預設只會導 standard output(stdout),沒有導 standard input 與 standard error,但可以用
2>&1
等技巧連 stderr 也導向檔案
常用 option:
Option | Description |
---|---|
-a |
用 append 的方式導到檔案(預設是取代) |
運作示意圖
運作流程很像一個大寫 T,因此指令名稱叫 tee
這是鳥哥的示意圖,簡潔易懂,但前面的 Standard Input 改成 Standard Output 好像更貼切:
這是網路上找到的另一個示意圖,比較花俏:
用法範例
原本將輸出到螢幕的 stdout 結果導到檔案的常見做法 (螢幕上不會顯示):
$ ls > result.txt
同時存到檔案和顯示在螢幕上 (取代 result.txt 原內容):
$ ls | tee result.txt
同時存到檔案和顯示在螢幕上 (附加在 result.txt 原內容後面):
$ ls | tee -a result.txt
後面可以把螢幕顯示的結果繼續再用管線做繼續其他處理:
$ ls | tee -a result.txt | grep aws
stdout 和 stderr 都導:
$ ls xxx 2>&1 | tee result.txt