溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中重定向的示例分析

發(fā)布時(shí)間:2021-07-15 10:23:54 來(lái)源:億速云 閱讀:204 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)Linux中重定向的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

簡(jiǎn)介

      在計(jì)算領(lǐng)域,重定向是大多數(shù)命令行解釋器所具有的功能,包括各種可以將標(biāo)準(zhǔn)流重定向用戶規(guī)定地點(diǎn)的Unix shells。類Unix操作系統(tǒng)的程序可以通過(guò)dup2系統(tǒng)調(diào)用完成重定向,或者通過(guò)缺少一些靈活性但是更高一級(jí)層次的freopen(3)和popen來(lái)完成。

1重定向

1.1      重定向符號(hào)

>               輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來(lái)的文件
>!              輸出重定向到一個(gè)文件或設(shè)備 強(qiáng)制覆蓋原來(lái)的文件
>>             輸出重定向到一個(gè)文件或設(shè)備 追加原來(lái)的文件
<               輸入重定向到一個(gè)程序

1.2標(biāo)準(zhǔn)錯(cuò)誤重定向符號(hào)

2>             將一個(gè)標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來(lái)的文件  b-shell
2>>           將一個(gè)標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到一個(gè)文件或設(shè)備 追加到原來(lái)的文件
2>&1         將一個(gè)標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到標(biāo)準(zhǔn)輸出 注釋:1 可能就是代表 標(biāo)準(zhǔn)輸出
>&             將一個(gè)標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來(lái)的文件  c-shell
|&              將一個(gè)標(biāo)準(zhǔn)錯(cuò)誤 管道 輸送 到另一個(gè)命令作為輸入

1.3命令重導(dǎo)向示例

在 bash 命令執(zhí)行的過(guò)程中,主要有三種輸出入的狀況,分別是:

1. 標(biāo)準(zhǔn)輸入;代碼為 0 ;或稱為 stdin ;使用的方式為 <

2. 標(biāo)準(zhǔn)輸出:代碼為 1 ;或稱為 stdout;使用的方式為 1>

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

[test @test test]# ls -al > list.txt

將顯示的結(jié)果輸出到 list.txt 文件中,若該文件以存在則予以取代!

[test @test test]# ls -al >> list.txt

將顯示的結(jié)果累加到 list.txt 文件中,該文件為累加的,舊數(shù)據(jù)保留!

[test @test test]# ls -al 1> list.txt  2> list.err

將顯示的數(shù)據(jù),正確的輸出到 list.txt 錯(cuò)誤的數(shù)據(jù)輸出到 list.err

[test @test test]# ls -al 1> list.txt 2> &1

將顯示的數(shù)據(jù),不論正確或錯(cuò)誤均輸出到 list.txt 當(dāng)中!錯(cuò)誤與正確文件輸出到同一個(gè)文件中,則必須以上面的方法來(lái)寫(xiě)!不能寫(xiě)成其它格式!

[test @test test]# ls -al 1> list.txt 2> /dev/null

將顯示的數(shù)據(jù),正確的輸出到 list.txt 錯(cuò)誤的數(shù)據(jù)則予以丟棄! /dev/null ,可以說(shuō)成是黑洞裝置。為空,即不保存。

1.4為何要使用命令輸出重導(dǎo)向

? 當(dāng)屏幕輸出的信息很重要,而且我們需要將他存下來(lái)的時(shí)候;
? 背景執(zhí)行中的程序,不希望他干擾屏幕正常的輸出結(jié)果時(shí);
? 一些系統(tǒng)的例行命令(例如寫(xiě)在 /etc/crontab 中的文件)的執(zhí)行結(jié)果,希望他可以存下來(lái)時(shí);
? 一些執(zhí)行命令,我們已經(jīng)知道他可能的錯(cuò)誤訊息,所以想以『 2> /dev/null 』將他丟掉時(shí);
? 錯(cuò)誤訊息與正確訊息需要分別輸出時(shí)。

感謝各位的閱讀!關(guān)于“Linux中重定向的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI