首頁 > 運維 > linux運維 > 主體

Linux中的重定向全面解析

巴扎黑
發布: 2017-08-07 13:22:04
原創
2360 人瀏覽過

這篇文章主要介紹了淺析Linux中重定向問題,需要的朋友可以參考下

#簡介

      在計算領域,重定向是大多數命令列解釋器所具有的功能,包括各種可以將標準流重定向使用者規定地點的Unix shells。類別Unix作業系統的程式可以透過dup2系統呼叫完成重定向,或者透過缺少一些彈性但是更高一級層次的freopen(3)和popen來完成。

1重定向

#1.1      重新導向符號

> ;               輸出重新導向至一個檔案或裝置覆寫原始的檔案
>!            輸出重定向到一個檔案或裝置追加原來的文件
<               輸入重新導向至一個程式

1.2標準錯誤重新導向符號 導向到一個檔案或裝置覆蓋原來的檔案  b-shell2>>           將一個標準錯誤輸出重新導向至一個檔案或裝置追加到原來的檔案

2gt;  gt;到標準輸出註解:1 可能是代表標準輸出

>&             將一個標準錯誤輸出重新導向至一個檔案或裝置覆蓋原先的檔案  c-shell
|      指令作為輸入


1.3指令重導向範例

#在bash 指令執行的過程中,主要有三種輸出入的狀況,分別是:

1. 標準輸入;代碼為0 ;或稱為stdin ;使用的方式為<

2. 標準輸出:代碼為1 ;或稱為stdout;使用的方式為1>

3. 錯誤輸出:代碼為2 ;或稱為stderr;使用的方式為2>

[test @test test]# ls -al > list.txt
登入後複製

將顯示的結果輸出到list.txt 檔案中,若該檔案以存在則予以取代!

[test @test test]# ls -al >> list.txt
登入後複製

將顯示的結果累加到 list.txt 檔案中,該檔案為累加的,舊資料保留!

[test @test test]# ls -al 1> list.txt  2> list.err
登入後複製

將顯示的數據,正確的輸出到list.txt 錯誤的資料輸出到list.err

[test @test test]# ls -al 1> list.txt 2> &1
登入後複製

將顯示的數據,無論正確或錯誤均輸出到list.txt 當中!錯誤與正確文件輸出到同一個文件中,則必須以上面的方法來寫!不能寫成其它格式!

[test @test test]# ls -al 1> list.txt 2> /dev/null
登入後複製

將顯示的數據,正確的輸出到 list.txt 錯誤的資料則予以丟棄! /dev/null ,可以說成是黑洞裝置。為空,即不保存。

1.4為何要使用指令輸出重導向

• 當螢幕輸出的資訊很重要,而且我們需要將他存下來的時候;• 背景執行中的程序,不希望他幹擾螢幕正常的輸出結果時;

• 一些系統的例行命令(例如寫在/etc/crontab 中的文件)的執行結果,希望他可以存下來時;

• 一些執行指令,我們已經知道他可能的錯誤訊息,所以想以『 2> /dev/null 』將他丟掉時;
• 錯誤訊息與正確訊息需要分別輸出時。

以上是Linux中的重定向全面解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板