Linux tee 命令解釋(附示例)

當您在終端上運行基本命令時,輸出通常會打印到終端,即標準輸出。 但是,如果您還可以將輸出保存在文件中並將其打印為標準輸出呢? 這就是 tee 命令所做的。 Linux tee 命令從 stdin(標準輸入)讀取,然後寫入 stdout(標準輸出)以及一個文件或多個文件。

tee 命令的基本語法

tee 命令採用以下語法。

$ 命令 | 球座 [ options ] 文件

現在讓我們採樣一些 example tee 命令的用法。

tee 命令的基本使用

假設我們要使用以下命令打印內存和交換使用情況 自由 命令並將輸出保存在名為的文件中 memory_usage.txt. tee 命令將按如下方式調用。

$ 免費 -h | 三通 memory_usage.txt

tee 命令從命令中讀取,將輸出保存到 memory_usage.txt 文件,然後將其打印為標準輸出。

確認輸出已保存到 memory_usage.txt 文件運行 cat 命令,如圖所示。

$ cat memory_usage.txt

將輸出寫入多個文件

此外,您可以將輸出保存到多個文件中,如圖所示

$ 命令 | 球座 [ options ] 文件 1 文件 2 …

在下面的命令中,字符串 “嘿,歡迎來到 Linux” 保存在兩個文本文件中: 文件1.txt 文件2.txt

$ echo 您好,歡迎使用 Linux | tee file1.txt file2.txt

將內容附加到文件

通常, tee 命令會覆蓋文件,這並不總是可取的,因為它可以擦除至關重要的現有數據。 幸運的是,您可以使用 -一個 將文本附加到文件的選項。 讓我們來測試一下。

首先,我們將編寫輸出 正常運行時間 命令給 統計信息.txt 文件如圖所示。

$ 正常運行時間 | 三通統計.txt

使用 命令來驗證這一點。

$貓統計.txt

接下來,我們將附加輸出 免費 -h 命令將我們的內存和交換使用情況打印到文件中。

$ 免費 -h | tee -a stats.txt

再次驗證內容 統計信息.txt 文件。 這一次,該文件將包含兩個命令的輸出,如下面的屏幕截圖所示。 這是因為我們附加了輸出 免費 -h 命令給 統計信息.txt 文件,因此現有文本不受影響。

將內容附加到文件

抑制 tee 命令的輸出

如果你不希望有輸出 球座 命令打印到標準輸出,您可以將其重定向到 /開發/空 這是一個丟棄信息的特殊設備。

拿 example 在我們打印輸出的下面 df -Th 命令到文本文件,但抑制終端上的輸出。

$ df -Th | 三通disk_usage.txt >/dev/null

抑制 tee 命令的輸出

讓 tee 命令忽略中斷

有時,您可能想要停止持續運行的命令。 發生這種情況時,您可能會考慮讓 tee 命令即使在程序中斷後也能正常退出。 要完成此操作,請使用 -一世 或者 – 忽略中斷 顯示的語法中提供的選項。

$ 命令 | tee -i 文件名

下面的 ping 命令不斷向 Google 的 DNS ( 8.8.8.8 ) 發送 ping 請求。 我們在連續 4 次 ping 請求後中斷了命令。 為了 球座 命令優雅退出,調用 -一世 選項。

$ ping 8.8.8.8 | tee -i ping_stats.txt

忽略中斷

沒有 -一世 選項,則不會打印統計信息的輸出和摘要。

結果

使用 tee 命令 sudo

修改 root 用戶或其他登錄用戶擁有的文件時,只需使用 tee 命令,而無需調用 sudo 命令將產生錯誤。

在裡面 example 下面,我們正在創建一個名為的新存儲庫 anydesk-stable.list 對於 AnyDesk 應用程序 /etc/apt/sources.list.d 為 root 用戶保留的路徑。

$ echo “deb https://deb.anydesk.com/ all main” | 三通/etc/apt/sources.list.d/anydesk-stable.list

正如預期的那樣,我們遇到了“權限被拒絕”錯誤,因為我們沒有在該路徑中創建或修改文件的權限。

使用 tee 命令 sudo

解決方法是先 球座 與 sudo 命令如圖所示。

$ echo “deb https://deb.anydesk.com/ all main” | sudo 三通/etc/apt/sources.list.d/anydesk-stable.list

這種情況下,放置後命令成功 sudo 開球前。

sudo  開球命令

獲取有關 tee 命令的幫助

有關使用 tee 命令的更多命令選項和幫助,請運行以下命令。

$ tee –help

tee 命令幫助選項

此外,如圖所示瀏覽手冊頁

$ 男士T卹

tee 命令手冊頁

要檢查版本,請運行:

$ tee –version

檢查 tee 命令版本

概括

這就是 Linux tee 命令的全部內容。 值得注意的是,該命令從標準輸入 (stdin) 讀取,然後寫入標準輸出 (stdout) 和文件。