tee — 同時寫入檔案與標準輸出

將輸入同時輸出到螢幕和一個或多個檔案。

語法

tee [選項] [檔案...]

常用選項

選項 說明 範例
-a, --append 附加到檔案(而非覆蓋) command | tee -a log.txt
-i, --ignore-interrupts 忽略 SIGINT 訊號(Ctrl+C) command | tee -i output.txt

使用範例

範例 1:同時顯示並儲存輸出

執行 apt upgrade 時,畫面上看到輸出,同時也儲存到日誌檔。

$ sudo apt upgrade | tee upgrade.log
(輸出同時顯示在螢幕並寫入 upgrade.log)
範例 2:附加到現有日誌

使用 -a 附加到已有的日誌檔,而非覆蓋。

$ echo "$(date): deploy started" | tee -a deploy.log
2026-05-20 10:30:00: deploy started
範例 3:寫入需要 sudo 的檔案

直接用重導向 > 寫 /etc 下的檔案會因權限不足失敗,用 tee 搭配 sudo 可解決。

$ echo "192.168.1.10 myserver" | sudo tee -a /etc/hosts
192.168.1.10 myserver
範例 4:同時寫入多個檔案

可以指定多個輸出檔案,tee 會同時寫入所有指定的檔案。

$ ls -la | tee file1.txt file2.txt > /dev/null
(輸出寫入 file1.txt 和 file2.txt,不顯示在螢幕)

延伸閱讀