1. 程式人生 > >檔案重定向——日誌檔案生成

檔案重定向——日誌檔案生成

2018/11/27

我們總會遇到這樣的需求,想執行命令後把輸出結果儲存在一個檔案裡面,俗稱日誌檔案。接下來有兩種方法。個人傾向第一種,比較方便。


>(輸出重定向)

  • 在命令後加上>filepath,就是相當於本來要輸出到介面上的內容存到filepath這個檔案裡面,且若檔案不存在將會被建立。

  • >:輸出重定向到一個檔案或裝置,相當於刪除該檔案並重新建立該檔案,再寫入的效果

    >!:輸出重定向到一個檔案或裝置,強制覆蓋原來的檔案

    >>:輸出重定向到一個檔案或裝置,追加原來的檔案

    2>:將一個標準錯誤輸出重定向到一個檔案或裝置,覆蓋原來的檔案

    2>>:將一個標準錯誤輸出重定向到一個檔案或裝置,追加到原來的檔案

    >&:執行時螢幕上所產生的任何資訊寫入指定的檔案中

    >>&:執行時螢幕上所產生的任何資訊追加指定的檔案中

  • 可以把內容放到/dev/null這個“黑洞”裡面,這樣螢幕不會有不想要的輸出。比如2>/dev/null


script

可以使用script工具記錄使用者在當前終端的所有的操作,已經輸出到螢幕的內容。將這些資訊儲存到指定的文字檔案中。而且可以使用 scriptreplay將其錄製的結果播放給他人觀看。
在這裡插入圖片描述
-a 選項 ,在現有輸出錄製的檔案的內容上追加新的內容


-c選項 ,後面可以加上需要執行的命令,而不是互動式shell上執行的命令
-r選項 , 子程序中返回退出程式碼
-f選項 , 如果需要在輸出到日誌檔案的同時,也可以檢視日誌檔案的內容,可以使用 -f 引數。PS:可以用於教學,兩個命令列接-f可以實時演示
-q選項 ,可以使script命令以靜默模式執行
-t選項,指明輸出錄製的時間資料
-V選項,輸出script的版本資訊,然後退出
-h選項,輸出script的help資訊,然後退出

  • 當file為空時,操作內容將記錄到當前目錄中名稱為typescript的文字檔案中,預設會生成。
  • 不為空,匯入資料到指定檔案裡面,不存在則建立。
  • 輸入exit可以退出script模式。
  • 理論上,我們用script "filepath" -c "command"就能夠替代>,但自己使用時候總是出現結果不如預期,算了還是用第一個吧。