linux重定向




將所有輸出重定向到文件 (7)

這個問題在這裡已經有了答案:

我知道在Linux中,為了將輸出從屏幕重定向到文件,我可以使用>tee 。 但是,我不確定為什麼部分輸出仍然輸出到屏幕上,而不是寫入文件。

有沒有辦法將所有輸出重定向到文件?


使用>>添加:

command >> file


使用這個 - "require command here" > log_file_name 2>&1

Unix / Linux中重定向操作符的詳細描述。

>運算符通常將輸出重定向到一個文件,但它可以是一個設備。 您也可以使用>>追加。

如果您不指定數字,則假定標準輸出流,但您也可以重定向錯誤

> file redirects stdout to file
1> file redirects stdout to file
2> file redirects stderr to file
&> file redirects stdout and stderr to file

/ dev / null是空設備,它會接受你想要的任何輸入並將其拋出。 它可以用來抑制任何輸出。


命令:

foo >> output.txt 2>&1

附加output.txt文件,無需替換內容。


在Linux Mint中,該命令字符串將執行腳本和錯誤路由到單個txt文件。 bash -x ./setup.sh > setup.txt 2>&1 。 腳本名稱是setup.sh,輸出目標是setup.txt。


您可以使用exec命令稍後重定向任何命令的所有stdout / stderr輸出。

示例腳本:

exec 2> your_file2 > your_file1
your other commands.....

所有POSIX操作系統都有3個流 :stdin,stdout和stderr。 stdin是輸入,它可以接受stdout或stderr。 stdout是主要輸出,它用>>>|重定向 。 stderr是錯誤輸出,它被單獨處理,以便任何異常不會傳遞給命令或寫入可能會中斷的文件; 通常,這被發送到某種類型的日誌,或者直接轉儲,即使stdout被重定向。 要將兩者重定向到相同的地方,請使用:

command &> /some/file

編輯 :感謝扎克指出,上述解決方案是不可移植的 - 使用,而不是:

*command* > file 2>&1 

如果您想要消除錯誤,請執行以下操作:

*command* 2> /dev/null

這可能是標準錯誤。 你可以重定向它:

... > out.txt 2>&1






io-redirection