資料流重定向 一

2021-07-30 22:15:13 字數 1447 閱讀 6352

為什麼要使用命令輸出重定向?

螢幕輸出的資訊很重要,而且我們需要將它存下來的時候 .

後台執行中的程式,不希望它干擾螢幕正常的輸出結果時 ;

一些系統的例行命令的執行結果,希望它可以存下來 ;

一些執行命令的可能已知錯誤資訊時,想以 " 2>/dev/null "將它丟掉時 ;

錯誤資訊與正確資訊需要分別輸出時 ;

[1]

資料流重定向(redirect)就是將某個命令執行後應該要出現在螢幕上的資料傳輸到其他的地方,例如檔案或印表機.

標準輸入(stdin) : **0,使用《或<

標準輸出(stdout) : **1,使用》或》   ;

標準錯誤輸出(stderr) : **為2,使用2>或2>>   ; 【

`若接收資料的檔案不存在,則系統建立乙個新檔案 .

`若以》輸出到乙個已存在的檔案中,那個檔案將會被

覆蓋掉 .

`若以》輸出到乙個已存在的檔案中,資料將會

累加到已存在檔案中 . 】

[2]

將錯誤資訊忽略而不顯示或儲存: 黑洞裝置/dev/null 

如 : find /home -name .bashrc 2> /dev/null    (一般使用者顯示許可權不夠,會由錯誤資訊輸出螢幕,但是使用該語句則將錯誤過濾,螢幕中的內容僅僅是標準輸出流輸出的內容)

將正確與錯誤資料統一寫入到乙個檔案中:  使用符號 &

如 : find /home -name .bashrc > list 2>

&1   (正確與錯誤的內容都將統一地寫入名為list的檔案中)   =>正確

find /home -name .bashrc > list 2> list  (這樣子看上去使用了標準輸出和標準錯誤輸出,但是資料可能交叉寫入檔案,造成次序混亂)    =>錯誤

使用cat命令進行鍵盤輸入資料至檔案: cat > catfile    (catfile是不存在的檔案)

注意:離開鍵盤輸入在空行鍵入 ctrl + d 即可離開

用stdin替代鍵盤的輸入以建立新檔案的簡單流程:

如 : cat > catfile < ~/.bashrc       (將路徑為~/.bashrc的檔案的內容存進新建立檔案catfile中)

通過鍵盤結束檔案輸入狀態:

如 : cat > catfile << "eof"         (當鍵入eof則結束檔案輸入狀態)

自定義螢幕輸出語句並遮蔽標準錯誤輸出:

如 :  ls /tmp/cgydawn 2> /dev/null && echo "file exists" || echo "file not exists"

: 將錯誤資訊丟進/dev/null "吞掉",然後利用&&與||輸出自定義語句

資料流重定向

重定向,將原本輸出到標準輸出的資料重定向到乙個檔案中,因為標準輸出 dev stdout 本身也是乙個檔案,我們將命令輸出導向另乙個檔案自然也是沒有任何問題的。下面我們簡單的回顧一下我們前面經常用到的兩個重定向操作 echo hello shiyanlou redirect echo www.jly...

資料流重定向

管道預設是連線前乙個命令的輸出到下乙個命令的輸入 linux中提供三個標準輸入與輸出 檔案路徑 檔案作用 dev stdin 用於標準輸入 dev stdout 用於標準輸出 dev stderr 用於錯誤輸出 簡單的重定向 通過管道把檔案的輸出作為cat的輸出,並把cat的輸出作為檔案test的輸...

資料流重定向

linux在你登入時,便將預設的標準輸入 標準輸出 標準錯誤輸出安排成你的終端。i o重定向就是你通過與終端互動,或者在shell script裡設定,重新安排從 輸入或者輸出到 每個程式都應該有標準輸入 輸出 錯誤輸出 重定向的方法大抵有 管道等 先了解stdin stdout stderr。標準...