流與輸出重定向

2021-10-13 12:54:37 字數 743 閱讀 7314

流就是讀一點資料, 處理一點點資料

> 和 >> 符號只是將標準輸出重定向到檔案,並不能將標準錯誤輸出重定向到檔案。

那麼我們要重定向標準錯誤輸出,該怎麼辦呢?

我們就要用到 2> 這個符號。是的,就是在 > 這個符號左邊緊挨著寫乙個 2。

為什麼是 2 呢?標準錯誤輸出的檔案描述符是 2,所以這裡的 2 表示標準錯誤輸出。如果沒有 2,單獨的 > 符號就是重定向標準輸出(檔案描述符為 1)。

我們補充一下命令:

cat not_exist_file.csv > results.txt 2> errors.log
這個命令裡有兩個重定向:

也就是說:

合併輸出

上面我們學習了如何將標準輸出和標準錯誤輸出分別重定向到不同檔案。但是有的時候,我們比較「任性」,就想把標準輸出和標準錯誤輸出都重定向到同乙個地方。怎麼做呢?

須要使用 2>&1 這個組合符號。

看著怪怪的對吧?僅由四個字元組成。這個符號的作用是:將標準錯誤輸出重定向到與標準輸出相同的地方。

我們用例項演示一下:

cat not_exist_file.csv > results.txt 2>&1
上面的命令的作用是:將cat not_exist_file.csv這個命令的所有輸出(標準輸出和標準錯誤輸出)都重定向到 results.txt 檔案中。

小結

輸入重定向,正確輸出重定向,錯誤輸出重定向

一 標準輸入 stdin a.輸入重定向 標準輸入 作用 將原先鍵盤輸入的內容改由檔案內容代替 root wenwen cat test.txt asdas asdas asdas 按crtl d 退出 將network內容匯入到test.txt中去 root wenwen cat test.txt...

sudo 與輸出重定向

本文介紹如何使用 sudo 將輸出重定向到當前使用者沒有許可權的檔案。注意 本文中 demo 的演示環境為 ubuntu 18.04。如果當前使用者沒有某個檔案的寫許可權,又要通過輸出重定向往該檔案中寫入內容。結果只能是 permission denied 比如當前使用者為 nick,下面的命令檢視...

重定向輸入輸出流 freopen

freopen是被包含於c標準庫標頭檔案中的乙個函式,用於重定向輸入輸出流。該函式可以在不改變 原貌的情況下改變輸入輸出環境。c99函式宣告 file freopen const char restrict filename,const char restrict mode,file restric...