歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

linux重定向命令

linux重定向命令   標准輸入,輸出和錯誤 --------------------------------- 文件文件                描述符 --------------------------------- 輸入文件—標准輸入       0 輸出文件—標准輸出       1 錯誤輸出文件—標准錯誤   2 ---------------------------------    1.重定向   COMMAND_OUTPUT >   2       # 將stdout重定向到一個文件.    3       # 如果這個文件不存在, 那就創建, 否則就覆蓋.    4    5       ls -lR > dir-tree.list   6       # 創建一個包含目錄樹列表的文件.    7    8    : > filename   9       # >操作, 將會把文件"filename"變為一個空文件(就是size為0).   10       # 如果文件不存在, 那麼就創建一個0長度的文件(與'touch'的效果相同).   11       # :是一個占位符, 不產生任何輸出.   12   13    > filename      14       # >操作, 將會把文件"filename"變為一個空文件(就是size為0).   15       # 如果文件不存在, 那麼就創建一個0長度的文件(與'touch'的效果相同).   16       # (與上邊的": >"效果相同, 但是某些shell可能不支持這種形式.)  17   18    COMMAND_OUTPUT >>  19       # 將stdout重定向到一個文件.   20       # 如果文件不存在, 那麼就創建它, 如果存在, 那麼就追加到文件後邊.   21   22   23       # 單行重定向命令(只會影響它們所在的行):   24       # --------------------------------------------------------------------  25   26    1>filename  27       # 重定向stdout到文件"filename".   28    1>>filename  29       # 重定向並追加stdout到文件"filename".   30    2>filename  31       # 重定向stderr到文件"filename".   32    2>>filename  33       # 重定向並追加stderr到文件"filename".   34    &>filename  35       # 將stdout和stderr都重定向到文件"filename".   36   37    M>N  38      # "M"是一個文件描述符, 如果沒有明確指定的話默認為1.   39      # "N"是一個文件名.   40      # 文件描述符"M"被重定向到文件"N".   41    M>&N  42      # "M"是一個文件描述符, 如果沒有明確指定的話默認為1.   43      # "N"是另一個文件描述符.   44   45       #==============================================================================  46   47       # 重定向stdout, 一次一行.   48       LOGFILE=script.log  49   50       echo "This statement is sent to the log file, \"$LOGFILE\"." 1>$LOGFILE  51       echo "This statement is appended to \"$LOGFILE\"." 1>>$LOGFILE  52       echo "This statement is also appended to \"$LOGFILE\"." 1>>$LOGFILE  53       echo "This statement is echoed to stdout, and will not appear in \"$LOGFILE\"."  54       # 每行過後, 這些重定向命令會自動"reset".     58       # 重定向stderr, 一次一行.   59       ERRORFILE=script.errors  61       bad_command1 2>$ERRORFILE       #  Error message sent to $ERRORFILE.  62       bad_command2 2>>$ERRORFILE      #  Error message appended to $ERRORFILE.  63       bad_command3                    #  Error message echoed to stderr,  64                                       #+ and does not appear in $ERRORFILE.  65       # 每行過後, 這些重定向命令也會自動"reset".   66       #==============================================================================  67   70    2>&1  71       # 重定向stderr到stdout.   72       # 將錯誤消息的輸出, 發送到與標准輸出所指向的地方.   73   74    i>&j  75       # 重定向文件描述符i到j.   76       # 指向i文件的所有輸出都發送到j.   77   78    >&j  79       # 默認的, 重定向文件描述符1(stdout)到j.   80       # 所有傳遞到stdout的輸出都送到j中去.   81   82    0< FILENAME  83     < FILENAME  84       # 從文件中接受輸入.   85       # 與">"是成對命令, 並且通常都是結合使用.   86       #  87       # grep search-word <filename  88   90    [j]<>filename  91       # 為了讀寫"filename", 把文件"filename"打開, 並且將文件描述符"j"分配給它.   92       # 如果文件"filename"不存在, 那麼就創建它.   93       # 如果文件描述符"j"沒指定, 那默認是fd 0, stdin.   94       #  95       # 這種應用通常是為了寫到一個文件中指定的地方.   96       echo 1234567890 > File    # 寫字符串到"File".   97       exec 3<> File             # 打開"File"並且將fd 3分配給它.   98       read -n 4 <&3             # 只讀取4個字符.   99       echo -n . >&3             # 寫一個小數點.  100       exec 3>&-                 # 關閉fd 3. 101       cat File                  # ==> 1234.67890 102       # 隨機訪問.  106    | 107       # 管道.  108       # 通用目的處理和命令鏈工具.  109       # 與">", 很相似, 但是實際上更通用.  110       # 對於想將命令, 腳本, 文件和程序串連起來的時候很有用.  111       cat *.txt | sort | uniq > result-file 112       # 對所有.txt文件的輸出進行排序, 並且刪除重復行.  113       # 最後將結果保存到"result-file"中.  command > filename      把標准輸出重定向到一個新文件中 command >> filename      把標准輸出重定向到一個文件中(追加) command 1 > fielname      把標准輸出重定向到一個文件中 command > filename 2>&1    把標准輸出和標准錯誤一起重定向到一個文件中 command 2 > filename     把標准錯誤重定向到一個文件中 command 2 >> filename     把標准輸出重定向到一個文件中(追加) command >> filename 2>&1   把標准輸出和標准錯誤一起重定向到一個文件中(追加) command < filename >filename2   把command命令以filename文件作為標准輸入,以filename2文件作為標准輸出 command < filename    把command命令以filename文件作為標准輸入 command << delimiter   把從標准輸入中讀入,直至遇到delimiter分界符 command <&m    把文件描述符m作為標准輸入 command >&m    把標准輸出重定向到文件描述符m中 command <&-    把關閉標准輸入   2.雙向重定向     即在重定向數據到目標文件的同時,還要保證數據能夠正常處理,使用tee命令。     tee [-a]  file       -a 往文件尾添加內容       last | tee last_backup | cut -d " " -f 1  #tee相當於對last的結果備份了一次  
Copyright © Linux教程網 All Rights Reserved