標準I/O重定向和管道

標準輸入和輸出

打開的文件都有一個fd:file descriptor(文件描述符)
Linux給程序提供三種I/O設備code

  • 標準輸入(STDIN)       - 0  默認接受來自終端窗口的輸入
  • 標準輸出(STDOUT)   - 1  默認輸出到終端窗口
  • 標準錯誤(STDERR)   - 2  默認輸出到終端窗口

I/O重定向redirect

I/O重定向:將默認的輸入,輸出或錯誤對應的設備改變,指向新的目標ip

標準輸出和錯誤從新定向

STDOUT和STDERR能夠被重定向到指定文件,而非默認的當前終端
支持的操做符號包括:基礎

1> 或 >  把STDOUT重定向到文件
2>          把STDERR重定向到文件
&>         把全部輸出重定向到文件

以上若是文件已經存在,文件內容會被覆蓋

file

set -C 禁止將內容覆蓋已有文件,但可追加,利用 >| 仍可強制覆蓋
set +C 容許覆蓋,默認

追加
\>\>  能夠在原有內容基礎上,追加內容
把輸出和錯誤從新定向追加到文件終端

\>\>   追加標準輸出重定向至文件
2>> 追加標準錯誤重定向至文件

標準輸出和錯誤輸出各自定向至不一樣位置

程序

COMMAND  > /path/to/file.out  2> /path/to/error.out

合併標準輸出和錯誤輸出爲同一個數據流進行重定向
& >    覆蓋重定向
&>>   追加劇定向error

COMMAND >   /path/to/file.out 2>&1
COMMAND >>  /path/to/file.out 2>&1

合併多個程序數據






標準輸入重定向

從文件中導入STDIN,代替當前終端的輸入設備,使用 < 來重定向標準輸入
某些命令可以接受從文件中導入的STDIN重定向

tr命令


標準輸入重定向




把多行重定向




管道

相關文章
相關標籤/搜索