首頁 > 軟體

Linux基礎知識:管道輸出

2020-06-16 17:34:07

管道輸出

1.命令輸出結果


正確輸出如下,其他輸出為錯誤輸出

以非root使用者執行以下操作:

<1>重定向正確輸出

find /etc -name passwd  >  file
“ > ”符號會覆蓋掉file檔案原有的內容, 要想向file檔案追加內容,使用“ >> ”符號

<2>追加正確輸出

find /etc -name passwd  >>  file    

<3>重定向錯誤輸出

find /etc -name passwd  2> file

<4>追加錯誤輸出

find /etc -name passwd  2>> file    

<5>重定向所有輸出

find /etc -name passwd  &> file

<6>追加所有輸出

find /etc -name passwd  &>> file    

<7>“改邪歸正”輸出

所謂”改邪歸正”,即,2>&1,將標準錯誤輸出2重定向到標準輸出中,”2>”就是標準錯誤輸出,”&”是為了讓bash將1解釋成標準輸出而不是檔案名字為1的檔案。

2.管道

管道符號“ | ”,其作用是,在前一個命令的基礎上,在交給下一個命令進一步處理(前面的命令的輸出當作後面的命令輸入)

註:管道只允許正確的輸出通過

<1>將錯誤標準輸出解釋為正確輸出,通過管道

<2>將錯誤標準輸出扔到“垃圾桶”,正確輸出通過管道

<3> > /dev/null 2>&1和2>&1 > /dev/null的區別

 > /dev/null 2>&1含義:
首先表示標準輸出重定向到空裝置檔案,接著,標準錯誤輸出重定向標準輸出,因為之前標準輸出已經重定向到空裝置檔案,所以標準錯誤輸出也重定向到空裝置檔案,於是,管道什麼也沒有通過

2>&1 > /dev/null 含義:
首先,標準錯誤輸出重定向標準輸出,再次之前標準輸出並沒有重定向,所以標準錯誤重定向為的標準輸出被“忽略”,然後,標準輸出重定向到空裝置檔案,於是,通過管道的就是之前被剩下的輸出

<4> | tee 複製輸出

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-09/134932.htm


IT145.com E-mail:sddin#qq.com