我知道這麼多:如何將stderr和stdout重定向到bash的同一行中的不同文件?
$ command 2>> error
$ command 1>> output
有沒有什麼辦法可以輸出標準錯誤的錯誤文件和輸出在同一條線上的bash的標準輸出到輸出文件?
我知道這麼多:如何將stderr和stdout重定向到bash的同一行中的不同文件?
$ command 2>> error
$ command 1>> output
有沒有什麼辦法可以輸出標準錯誤的錯誤文件和輸出在同一條線上的bash的標準輸出到輸出文件?
只需添加他們一行command 2>> error 1>> output
但是,請注意>>
是附加在文件已經有數據。而>
將覆蓋文件中的任何現有數據。
所以,command 2> error 1> output
如果你不想追加。
只是爲了完成,您可以將1>
寫爲>
,因爲默認文件描述符是輸出。所以1>
和>
是一樣的東西。
所以,command 2> error 1> output
變,command 2> error > output
就像是:
$ command >>output 2>>error
如果你喜歡在一個單一的文件混合輸出(標準輸出&標準錯誤),你可能要使用:
command > merged-output.txt 2>&1
這更簡單,因爲「command> merged-output.txt」 –
這不是問題的答案。 – Matthias
試試這個:
your_command 2>stderr.log 1>stdout.log
中的數字0
通過9
是文件描述符在bash。 0
代表標準輸入,1
代表標準輸出,2
代表標準錯誤。 3
到9
是用於任何其他臨時使用。
任何文件描述符都可以使用運算符>
重定向到文件或另一個文件描述符。您可以改爲使用運算符>>
追加到文件而不是創建一個空文件。
用法:
類file_descriptor > 名
類file_descriptor > & 類file_descriptor
之前的評論不再相關,因爲答案已經根本改變了(爲了更好)。現在討論如何獨立重定向輸出,這很有用。 – Dom
很好的答案!我真的很喜歡你的解釋,說明'1>'可以寫成''' – user784637
這與'command&2> err.log'有什麼不同,我認爲我完全混淆了sintaxies。 (鏈接到所有bash管道的適當答案可能是按順序) – ThorSummoner
@ThorSummoner http://www.tldp.org/LDP/abs/html/io-redirection。HTML是我認爲你正在尋找的東西。 Fwiw,看起來像'command&2> err.log'並不完全合法 - 該語法中的和號用於文件描述符作爲目標,例如'command 1>&2'會將stdout重新路由到stderr。 – DreadPirateShawn