[Linux] tee 指令:將結果同時輸出到螢幕和檔案

指令使用要點

指令用途

  • 將結果同時輸出到螢幕和檔案
  • 預設只會導 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

References

發表留言