關於tee指令

pinpinq發表於2020-11-13

   tee指令,為Linux的一個指令,其主要作用是,從標準輸入中獲取資料,將其輸出到螢幕的,同時將內容也儲存到檔案中;

彙總tee的一些常見的應用:

1、輸出到檔案,同時輸出到螢幕      

      備註: 這裡tee指令,同Linux指令連用; 同樣, 該指令也可以與Python指令碼、shell指令碼等連用; 【如:python   a.py  | tee  file】

$ ls | tee dic

Applications
CLionProjects
Desktop
Documents
Downloads
Library
Movies
Music
Pictures
Public
PycharmProjects
WebstormProjects
baidu
dic
hashcat
monitor
my_test
python3

同時,產生檔案dict,  開啟檔案『dic』,檔案中儲存了同樣的內容;

2、輸出到多個檔案

     基本用法為: 

ls | tee  file1 file2
 

3、追加寫入

  上述指令, 每次執行,都會覆蓋掉檔案中原有的內容, 然後寫入最新的內容;   有時候,需要實現追加儲存;  使用引數『-a 』執行如下指令:

ls | tee  -a  file1

4、 取消延遲,實時儲存到檔案

      該問題,存在於  tee 同 python指令連用時;

     復現場景: 執行Python指令,將產出的結果輸出到螢幕,同時儲存到檔案中;但是,經常遇到這種的問題, 執行了好久, 螢幕上也沒有輸出,同時檔案裡面也沒有實時儲存;

     原因解析: python 中,重定向和輸出到控制檯的內容,會首先先到快取區暫存, 直到遇到 換行符 『\n』或者 當 快取儲存到一定程度,才會將內容輸出到重定向檔案或者輸出到螢幕上;

     解決辦法:  執行Python得時候, 加上引數 -u  , 即:

                        python   -u   test.py   | tee   file.tx

相關文章