Linux 的數據流重定向

Linux 的標準輸入輸出

  1. 標準輸入  (stdin) :代碼爲 0 ,使用 < 或 << ;
  2. 標準輸出  (stdout):代碼爲 1 ,使用 > 或 >> ;
  3. 標準錯誤輸出(stderr):代碼爲 2 ,使用 2> 或 2>> ;

標準輸出的使用

  • 1> :以覆蓋的方法將『正確的數據』輸出到指定的文件或裝置上;
  • 1>>:以累加的方法將『正確的數據』輸出到指定的文件或裝置上;
  • 2> :以覆蓋的方法將『錯誤的數據』輸出到指定的文件或裝置上;
  • 2>>:以累加的方法將『錯誤的數據』輸出到指定的文件或裝置上;

使用範例

範例一:將命令(ll /)的標準輸出保存到文件中
[root@www ~]# ll / > ~/rootfile <==屏幕並沒有任何信息
[root@www ~]# ll ~/rootfile <==有個新檔被建立了!
-rw-r--r-- 1 root root 1089 Feb  6 17:00 /root/rootfile
範例二:將標準輸出與錯誤輸出分存到不一樣的文件中
[dmtsai@www ~]$ find /home -name .bashrc > list_right 2> list_error
範例三:將錯誤輸出丟棄,屏幕上顯示正確的輸出
[dmtsai@www ~]$ find /home -name .bashrc 2> /dev/null
/home/dmtsai/.bashrc  <==只有 stdout 會顯示到屏幕上, stderr 被丟棄了
範例四:將命令的全部輸出所有保存到名爲 list 的文件中
[dmtsai@www ~]$ find /home -name .bashrc > list 2> list  <==錯誤
[dmtsai@www ~]$ find /home -name .bashrc > list 2>&1     <==正確
[dmtsai@www ~]$ find /home -name .bashrc &> list         <==正確
範例五:將命令的全部輸出所有丟棄
[dmtsai@www ~]$ find /home -name .bashrc >> /dev/null 2>&1
範例六:結合計劃任務使用,將全部輸出丟棄
* * * * * cd /var/www/project && command >> /dev/null 2>&1

參考:http://cn.linux.vbird.org/lin...php

相關文章
相關標籤/搜索