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,不顯示在螢幕)