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