萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux tee 指令用法詳解:同時輸出至螢幕與檔案的管線利器

tee 從標準輸入讀取資料,**同時**輸出到標準輸出 (螢幕) 與一個或多個檔案,是管線處理中「分流」資料的關鍵工具。

語法

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

常用選項

選項說明
-a, --append**附加**模式:資料寫入檔案末尾,不覆蓋原內容。
-i, --ignore-interrupts忽略中斷訊號 (SIGINT)。
-p診斷寫入非管線輸出的錯誤 (預設)。
--output-error[=MODE]控制寫入錯誤行為:warn (預設)、exit、exit-nopipe。

實戰範例

grep -r -i -E "sss|aaa" ./ | grep -v ./doc/ | tee -a log.txt

解析:

  • grep -r:遞迴搜尋子目錄。
  • -i:忽略大小寫。
  • -E:使用擴充正則表達式 (此處為「sss」或「aaa」)。
  • grep -v ./doc/:排除 ./doc/ 目錄下的結果。
  • tee -a log.txt:將過濾後的結果**同時**顯示在螢幕上,並**附加**寫入 log.txt (不覆蓋)。

進階用法

  • 多檔案寫入:command | tee file1.txt file2.txt file3.txt 同時寫入多個檔案。
  • 搭配 sudo 寫入需權限的檔案:echo "new config" | sudo tee /etc/sysctl.d/99-custom.conf (因重導向 > 不支援 sudo,tee 可繞過)。
  • 僅寫入檔案不顯示螢幕:command | tee output.log > /dev/null。

核心價值

tee 讓「看得到過程、留得下結果」成為可能,是 Shell 腳本除錯、日誌記錄、多重備份的標準作法。

copyright © 萬盛學電腦網 all rights reserved