1. 程式人生 > >認識Linux資料重定向redirection

認識Linux資料重定向redirection

今天kiddd帶大家學習的是LInux的一個知識內容——redirection,重定向。瞭解重定向之前首先需要知道Linux的三種檔案描述符。

輸出重定向

當我們正常執行Linux命令時,Linux命令列會將命令寫入後的輸出,寫入到標準輸出檔案當中,並將輸出的結果列印到螢幕上,如:
這裡寫圖片描述
這種檔案叫做標準輸出檔案,它到檔案描述符為1

第二種情況呢,當我們執行錯誤的Linux命令時,Linux會將錯誤命令後的輸出寫入到檔案描述符為2標準錯誤輸出檔案中,並顯示到螢幕上。

而將原本輸出在螢幕上的內容轉而輸出到其他地方——這就是重定向的一個基本的作用。

  1. 將標準輸出重定向到某個檔案中
    如將ls當前目錄的輸出重定向到一個檔案中,操作到方法是:

    ls >xxx.txt

    這裡寫圖片描述
    我們開啟檢視一下,果然,輸出到內容被重定向到了output.txt中
    這裡寫圖片描述

  2. 將標準錯誤輸出重定向到某個檔案中
    標準錯誤輸出的重定向簡單地使用>操作符是行不通的,這時我們就用到了之前學習的知識——加上標準錯誤輸出檔案描述符:2。

    ls XXX 2>output.txt

搞定。

  1. 將兩個檔案合併成一個檔案
    重定向的另一個作用即合併檔案:

    xxx file1 file2 >file3


這裡寫圖片描述
(file1中有hello,file2中有world,file3為空。重定向後file3中有字串:hello world)
  1. 同時重定向所有輸出:

    s &>output.txt

  2. 檔案存在時,>file ,清空檔案。

  3. 檔案不存在時,>file,新建檔案。
  4. 重定向在指令碼中的使用:
    !/usr/bin/env bash
    >output.txt
    for dir in /bin/usr /usr/bin
    do
    ls $dir &>output.txt
    done

輸入重定向

除了輸出重定向外,還有輸入重定向,其作用為:

將某個從鍵盤讀取的輸入重定向到讀取某個檔案。

其操作符為:<
(與輸出重定向剛好相反)

總結

Linux命令是軟體開發者必須掌握的。重定向在日常開發中有很多衍生可以提升效率。另外進階使用及shell變成更是用處多多,更多的等待著你去探索。