介紹如何在 Linux 中使用 tee
指令,將程式的結果同時輸出至螢幕以及檔案中。
Linux 的
tee
指令可以從標準輸入讀取資料之後,將資料同時送到檔案與螢幕上,可以讓使用者一邊即時觀察資料,一邊將資料儲存至檔案中。
以下是 tee
指令的安裝與使用方式。
安裝 tee
通常 Linux 系統中都會預先安裝好 tee
指令工具,如果在 Ubuntu Linux 系統下要安裝 tee
指令,可以用 apt
安裝 coreutils
套件:
# 安裝 coreutils 套件
sudo apt install coreutils
輸出至螢幕與檔案
若要將資料同時輸出至螢幕與檔案,只要將資料導向至 tee
指令,並指定要存放資料的檔案名稱即可:
# 將 ls 的輸出顯示在螢幕上,同時儲存至 output.txt
ls | tee output.txt
tee
也可以同時寫入多個檔案,也就是將資料複製好幾份,寫入多個檔案中:
# 將 ls 的輸出顯示在螢幕上,同時儲存至 output1.txt、output2.txt、output3.txt
ls | tee output1.txt output2.txt output3.txt
附加方式寫入檔案
當輸出的檔案已經存在時,若要讓 tee
以附加方式寫入檔案,不要將原始的檔案內容覆蓋掉,可以加上 -a
參數:
# 以附加方式寫入 output.txt ls | tee -a output.txt
處理錯誤訊息
如果要連同程式的錯誤訊息一起交給 tee
處理,可以使用 2>&1
將程式的錯誤訊息(標準錯誤,即 standard error)合併至標準輸出:
# 連同錯誤訊息一起處理 ls non.exist 2>&1 | tee output.txt
搭配其他工具使用
tee
顯示在螢幕上的資料,其實就是輸出至標準輸出而已,所以在 tee
之後也可以搭配任意的 Linux 工具進行後續資料的處理:
# 搭配 grep 顯示特定資料
ls | tee output.txt | grep hello