linux標准輸入輸出2>&1


linux中有三種標准輸入輸出,分別是STDIN,STDOUT,STDERR,對應的數字是0,1,2。
     STDIN是標准輸入,默認從鍵盤讀取信息;STDOUT是標准輸出,默認將輸出結果輸出至終端;STDERR是標准錯誤,默認將輸出結果輸出至終端。
     由於STDOUT與STDERR都會默認顯示在終端上,為了區分二者的信息,就有了編號的0,1,2的定義,用1表示STDOUT,2表示STDERR。
     2>&1,指將標准輸出、標准錯誤指定為同一輸出路徑

eg1:cat >>filetest 2>&1 <<END      -------建立filetest文件,當輸入遇到END時,退出

eg2:
     1、以普通用戶執行 find /etc -name passwd 命令,默認會將命令的執行結果(STDOUT)與錯誤信息(STDERR)都輸出至終端顯示器。
     2、執行find /etc -name passwd >find.out 2>find.err,會將STDOUT與STDERR分別存放至find.out和find.err中。該命令也可以寫成下面三種形式
          find /etc -name passwd 1>find.out 2>find.err
          find /etc -name passwd 2>find.err >find.out
          find /etc -name passwd 2>find.err 1>find.out
     3、若要將所有標准輸出及標准錯誤都輸出至文件,可用&表示全部1和2的信息,eg:
          find /etc -name passwd &>find.all 或 find /etc -name passwd >find.all 2>&1
     4、2>&1 ---標准錯誤重新定向到標准輸出
     5、用法:find /etc -name passwd &2>&1 |less
          可分解成
          find /etc -name passwd & 表示前面的命令放到后台執行。
          2>&1 |less 表示將標准錯誤重定向至標准輸出,並用less進行分頁顯示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM