zoukankan      html  css  js  c++  java
  • linux之资料重定向

    1. 標準輸入  (stdin) :代碼為 0 ,使用 < 或 << ;
    2. 標準輸出  (stdout):代碼為 1 ,使用 > 或 >> ;
    3. 標準錯誤輸出(stderr):代碼為 2 ,使用 2> 或 2>> ;
    • 1> :以覆蓋的方法將『正確的資料』輸出到指定的檔案或裝置上;
    • 1>>:以累加的方法將『正確的資料』輸出到指定的檔案或裝置上;
    • 2> :以覆蓋的方法將『錯誤的資料』輸出到指定的檔案或裝置上;
    • 2>>:以累加的方法將『錯誤的資料』輸出到指定的檔案或裝置上;

    根据鸟哥的资料,简单记录几个小例子:

    範例二:利用一般身份帳號搜尋 /home 底下是否有名為 .bashrc 的檔案存在
    [root@www ~]# su - dmtsai  <==假設我的系統有名為 dmtsai 的帳號
    [dmtsai@www ~]$ find /home -name .bashrc <==身份是 dmtsai 喔!
    find: /home/lost+found: Permission denied  <== Standard error
    find: /home/alex: Permission denied        <== Standard error
    find: /home/arod: Permission denied        <== Standard error
    /home/dmtsai/.bashrc                       <== Standard output
    範例三:承範例二,將 stdout 與 stderr 分存到不同的檔案去
    [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         <==正確

    上述表格第一行錯誤的原因是,由於兩股資料同時寫入一個檔案,又沒有使用特殊的語法, 此時兩股資料可能會交叉寫入該檔案內,造成次序的錯亂。所以雖然最終 list 檔案還是會產生,但是裡面的資料排列就會怪怪的,而不是原本螢幕上的輸出排序。 至於寫入同一個檔案的特殊語法如上表所示,你可以使用 2>&1 也可以使用 &> ! 一般來說,鳥哥比較習慣使用 2>&1 的語法啦!

    原文地址:http://linux.vbird.org/linux_basic/0320bash.php#redirect

  • 相关阅读:
    c# 数据请求方式提供
    初来乍到,记录第一次发布博客
    JDBC连接LDAP认证Inceptor
    PHP环境搭建以及helloworld.php
    axis2 webservice在websphere上需要设置was共享库
    关于Weblogic优先加载jar包的设置
    time & datetime 模块
    常用模块
    第二模块:函数编程 第1章-练习题
    第二模块:函数编程 第1章·文件处理、函数、装饰器、迭代器、内置方法
  • 原文地址:https://www.cnblogs.com/xuelu/p/3985250.html
Copyright © 2011-2022 走看看