我們都知道在 Linux 命令行終端中運行命令是如何導致執行命令並在終端本身中打印結果的。 有時,這種立即顯示輸出是不夠的,特別是如果我們想保存輸出以備後用。 幸運的是,Linux bash 和所有操作系統 bash就此而言,它具有將命令的輸出打印到指定文件的能力。 在本文中,我們將處理以下兩個任務:
- 將命令輸出保存到文件
- 在終端上打印輸出並將其保存到文件
本文中提到的命令已在 Ubuntu 18.04 LTS 系統上執行。
將命令輸出保存到文件
我們將運行一些示例,其中命令的輸出將保存在我們指定的文件名中。
創建新文件/替換現有文件
如果要將命令的輸出保存到新文件或用命令的輸出替換現有文件的內容,請使用以下語法:
$ [command] > [/filelocation/filename]
為了 example, 我將使用 lscpu 命令(顯示系統信息),然後將其內容打印到名為 systeminformation.txt 的文件中。 該文件在我的系統中尚不存在。
當我通過文件管理器訪問這個文件時,它看起來像這樣:
將輸出附加到現有文件
如果你想將 Linux 命令的輸出保存到一個文件中而不弄亂它已經存在的內容,你可以使用以下語法:
$ [command] >> [/filelocation/filename]
為了 example,下面的命令會將 ls 命令的結果附加到我已經存在的文件 systeminformation.txt 的末尾。
曾經只包含我的系統信息的以下文件現在也包含我的 ls 命令的輸出:
在終端上打印輸出並將其保存到文件
您可能已經註意到,我們上面提到的命令僅將輸出保存到文件中,而不會在終端本身上打印它們。 如果您還想在終端上查看命令的輸出,請使用以下語法:
$ [command] | tee [/filelocation/filename]
為了 example,我們要在下圖中回顯的文本現在將在終端上回顯並打印到文件 myfile.txt。
這些是通過命令生成的文件的內容:
如果要將命令的輸出附加到已存在的文件。 請遵循以下語法:
$ [command] | tee -a [/filelocation/filename]
為了 example,下圖顯示瞭如何回顯更多文本,然後將其添加到我現有的文件中:
這是文件現在的樣子:
我們通過本文生成的這些面向輸出的文本文件在某些情況下比通常在終端上打印輸出更有用。 這就是 Ubuntu 的強大之處 bash 是!