在終端窗口中運行命令時,命令的輸出通常會打印到終端或屏幕上,因此可以立即讀取。如果要保存命令,也可以將其輸出打印到文件中。
如果要診斷問題,將命令的輸出保存到文件中會很有幫助。要獲得技術支持的幫助,您可能需要在計算機上運行某些命令,並將結果發送給支持團隊。在命令行上使用輸出重定向很容易。
今天我們將介紹如何在Windows、Mac和Linux上將命令的輸出發送到bashshell中的文本文件。
注意:我們將在我們的示例中使用Mac終端,但是它在Linux上的bash shell和windows10中的新bash shell中的工作方式相同。
有兩個操作符用於將命令的輸出重定向到文件而不是屏幕。
>;符號將創建一個新文件(如果不存在),或覆蓋該文件(如果已存在)。如果文件不存在,>;>;也會創建一個新文件,但如果文件已經存在,則會將文本附加到文件末尾,而不是覆蓋該文件。
要將命令的輸出重定向到文件,請鍵入命令,指定>;或>;>;運算符,然後提供要將輸出重定向到的文件的路徑。例如,ls命令列出當前目錄中的文件和文件夾。運行以下命令時,文件和文件夾列表將寫入ls_輸出.txt終端輸出文件夾中的文件。
將/path/to/file替換為要使用的文件的完整路徑。
ls > /path/to/file這是我們示例的命令。
ls > /Users/lorikaufman/TerminalOutput/ls_output.txt要在終端窗口中查看文件的內容,請使用cat命令,如以下命令所示。同樣,將/path/to/file替換為要查看的文件的完整路徑。
cat /path/to/file每次使用現有文件重定向輸出時,>;運算符都會替換該文件的內容。如果要將多個命令的輸出保存到單個文件中,請改用>;>;運算符。這會將命令的輸出附加到指定文件(如果該文件已存在)的末尾。如果文件不存在,它將創建一個新文件。
例如,我們將把系統信息附加到上面創建的文件的末尾。因此,在下一行中,uname-a是命令,後跟>;>;重定向操作符。然後是要將uname命令的輸出附加到的文件的完整路徑。
uname命令中的-a參數打印所有可用的系統信息。
uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt要在終端窗口中查看包含附加信息的文件,請輸入以下命令,並提供文件的完整路徑。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt根據需要多次重複此過程,以將命令輸出附加到文件末尾。
下面是另一個示例,將ls命令的輸出發送為目錄樹,子目錄遞歸列出(R參數),每行列出一個文件(1參數)。
ls -1R > /Users/lorikaufman/TerminalOutput/dir_tree.txt然後,如前所述,我們使用cat命令在終端窗口中查看文件的內容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt>;和>;>;運算符不在屏幕上顯示命令的輸出。輸出僅發送到文件。
如果要將輸出發送到文件並在屏幕上看到它,請使用tee命令而不是>;和>;>;運算符。
要使用tee命令,必須使用pipe操作符(垂直條(|))將正在運行的命令(如ls)的輸出通過管道傳輸到tee命令。例如,下面的命令接受ls命令的輸出並將其導入tee命令。然後tee命令將輸出發送到屏幕和使用文件的完整路徑指定的文件。
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt上面的命令將替換文件中的所有內容,或者在文件不存在時創建一個新的內容,就像>;操作符一樣。我們使用以下cat命令在終端窗口中查看文件的內容。
cat /Users/lorikaufman/TerminalOutput/ls_output.txt要使用tee命令將輸出打印到屏幕並將其附加到文件末尾,請輸入以下命令。在這裡,我們使用uname-a命令將完整的系統信息添加到文件的末尾,就像我們對>;>;操作符所做的那樣,但是也會將輸出發送到屏幕。
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt下面的命令是將目錄樹遞歸打印到文件和屏幕的tee版本,每行一個文件,就像我們使用>;操作符所做的那樣。
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt然後,我們再次使用cat命令查看文件的內容。
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt有很多方法可以將輸出(包括錯誤)重定向到文件。您可以在高級Bash腳本指南的I/O重定向一章中瞭解用於重定向輸出的不同操作符和命令。
Mac用戶還應該為我們的Mac終端命令備忘表添加書籤。
微軟希望使用者從命令提示符轉向PowerShell,但有充分的理由不這麼做,主要原因是PowerShell更先進,更適合高階使用者。命令提示符仍然是日常使用者更好的選擇。在我們對命令提示符和PowerShell之間的差異的概述中瞭解更多資訊...
... 要了解更多的Linux基礎知識,請檢視我們關於如何在Linux中重新命名檔案的概述。 ...
您可能聽說過命令提示符,並且知道它是一個很好的Windows工具,可以快速執行有用的操作。只需幾次按鍵,您就可以更改設定和檢查資訊,這些資訊需要在普通視窗中點選十幾下。 ...
...ADB和Fastboot到底是什麼,需要幫助設定它們,或者想知道如何使用它們,請繼續閱讀。 ...
... 我們已經介紹瞭如何使用defaults命令更改螢幕截圖的預設值,比如螢幕截圖的預設檔案格式以及它們自動儲存到的位置。 ...
...是故意橫著拍的。。。但是你拿錯了**,現在你需要知道如何旋轉影片並儲存它。別擔心。這是常有的事。 ...
...個無關緊要的問題,但它會影響程式碼的質量和正確性、如何控制版本以及如何與他人協作。但是,如果你不想陷入每一個大括號的細節中,那麼可以嘗試將問題外包給開源工具Prettier。 ...
googledrive仍然沒有正式的Linux客戶端,但是您可以直接從命令列使用rclone實用程式備份到googledrive。我們教你怎麼做。 linux上的google drive在哪裡? 儘管2012年承諾Linux支援“很快就會到來”,但沒有跡象表明Google會為GoogleDrive生產...
...個檔案。每一個都有它在遠端伺服器上的名字。 相關:如何在Linux上使用xargs命令 從ftp伺服器下載檔案 將curl與檔案傳輸協議(FTP)伺服器結合使用很容易,即使您必須使用使用者名稱和密碼進行身份驗證。要使用curl傳遞使用...