淺析Linux 重定向操作符

淺析Linux 重定向操作符   >  1>  2>  >>  1>>  2>>  >&1  >&2  |  tee

Win系統與Linux系統都常用到重定向操作符,經常搭配echo命令使用。本篇算是整理學習一下Linux重定向操作符。

常用的是 > 重定向符 , 把前面輸出的內容重定向到後邊指定的位置。例如win系統中: 

或者 >> 重定向追加內容到後邊的位置,例如:

Linux Shell中常用的文件描述符: 

  • stdin(0): keyboard 鍵盤輸入,並返回到前端; ---- 即爲鍵盤輸入到計算機中顯示出來,比如下圖 cat f1 f9 輸入到前端。
  • stdin(1): monitor 正確返回值,輸出到前端;   ---- 命令的正確返回結果,  比如cat f1的返回結果"hellooooo",是正常輸出
  • stdin(2): keyboard 錯誤返回值,輸出到前端; -----命令的錯誤返回結果 , 比如cat f9的返回結果"沒有那個..."是錯誤輸出

=======

舉個栗子, 將std2 error信息單獨輸出到文件 error.txt,正確信息輸出到right.txt

與此類似,追加正確信息到right,  追加錯誤信息到error

追加正確信息, 覆蓋錯誤信息,

使用&描述符。 1>&2, 將正確信息重定向到錯誤輸出。    類似的, 2>&1將錯誤信息重定向到正確輸出。   

&>filename將所有輸出重定向到filename文件。

舉個栗子

類似:

注意,若不帶描述符, 1>2  或者1 >> 2 會將2識別爲一個文件, 而不是stdin輸出。另外 > 與1> 是相同的意思和作用。 > 只是前面簡寫省去了1。

將error信息重定向到空地址,即爲不保存error信息。

管道符與tee搭配使用:

上述的輸出要麼輸出到文件裏,要麼輸出到前端,無法同時輸出到兩個地方,這個可以使用tee命令實現。

tee -a 追加內容

tee輸出到多個文件

tee用多了也就上手了, 同時它比較實用一下。還有些其他功能,篇幅原因暫不舉栗子了。 謝謝。

 

=======End=========

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章