如何在 Linux 中使用 Tee 和 Xargs 從標(biāo)準(zhǔn)輸入運行命令
使用命令行時,您可以直接將一個程序(例如生成某些系統(tǒng)信息或統(tǒng)計信息的工具)的輸出作為另一個程序(例如文本過濾或模式搜索工具,如grep、sed或awk,用于進一步處理),使用管道。
可與管道一起使用以構(gòu)建命令行的兩個最重要的命令行實用程序是:
- xargs – 從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)流,然后生成并執(zhí)行命令行。
- tee – 從標(biāo)準(zhǔn)輸入讀取并同時寫入標(biāo)準(zhǔn)輸出和一個或多個文件。它更像是一個重定向命令。
在這篇簡單的文章中,我們將描述如何在 Linux 中使用 pipes、tee 和 xargs 命令從標(biāo)準(zhǔn)輸入構(gòu)建和執(zhí)行多個命令。
使用管道的最簡單語法如下所示,您可能已經(jīng)在我們許多 Linux 教程的命令中看到過。但是您可以使用多個命令構(gòu)建更長的命令行::
下面是使用管道將 dmesg 命令的輸出傳遞給 head 命令的示例。
將命令輸出傳遞給另一個命令
如何使用 xargs 運行命令
在此示例中,第二個命令使用 xargs 將多行輸出轉(zhuǎn)換為單行:
使用 Xargs 運行命令
要計算列表中每個文件的行數(shù)/單詞數(shù)/字符數(shù),請使用以下命令:
使用 Xargs 計算文件字?jǐn)?shù)
下面的命令查找并遞歸刪除在當(dāng)前目錄中命名為 linuxmi 的目錄:
帶有選項操作的 find 命令可以-print0 在標(biāo)準(zhǔn)輸出上打印完整的目錄路徑,后跟空字符和-0 xargs標(biāo)志處理文件名中的空格。
如何在 Linux 中通過命令使用 Tee
此示例顯示如何將命令輸出發(fā)送到標(biāo)準(zhǔn)輸出并將其保存到文件中;下面的命令允許您查看Linux 中內(nèi)存和 CPU 使用率最高的運行進程:
將命令輸出保存到文件
要在現(xiàn)有文件中附加數(shù)據(jù),請傳遞-a 標(biāo)志:
您可以在tee和xargs手冊頁上找到更多信息:
就這樣!